Archive for the 'Actionscript' Category

De boze boze garbage collector in ActionScript 3

Sinds ik vorig jaar in september begonnen ben met ActionScript 3 te leren, en te gebruiken, ben ik al veel op het probleem gestoten waar ik niet-werkende, of maar half-werkende (ActionScript) tweens kreeg. Ik dacht altijd dat het aan mijn slechte coding skills lag, maar op termijn begon ik toch wat meer zelfvertrouwen krijgen, en besefte ik dat het probleem niet zozeer bij mij lag.

Tijdens het ontwikkelen van de site voor mijn eindwerk in december liep de emmer over: Alweer een project waarin het ActionScript tweenen niet wilde lukken. Gerrit kwam me helpen, en na even zoeken kon hij me vertellen dat de fout inderdaad niet bij mij lag, maar bij de garbage collector in de Flash Player.
Mijn probleem was vanaf dan opgelost, en in elk project waar ik nu ActionScript-matige tweens aanmaak kan ik dat probleem meteen uit de weg gaan, maar ik zie nog enorm veel vragen opduiken waarin dit exact zelfde probleem besproken wordt.

Playr: De ActionScript 3 music player class!

Ik heb gisteren de laatste wijzigingen aangebracht aan de vroegere MusicPlayer class. Zoals het er nu uitziet lijkt deze klasse af, voor een eerste ronde echt gebruik, keiharde feedback en vele suggesties.

Belangrijke wijzigingen zijn:

  • Classnames, en package names zijn aangepast.
    • De klasse zelf heet nu Playr in plaats van MusicPlayer.
    • Package name is aangepast. com.noCreativity.MusicPlayer is nu com.nocreativity.playr (met dank aan Peter Elst voor de best practice tip ;) )
  • Shuffle mode toegevoegd
  • Trackprogress kan nu ook opgevraagd worden
  • Singletrack werkt nu volledig
  • Bug ivm repeat weggewerkt

Wat doet Playr?

Playr is een Flash Actionscript 3 klasse die het maken van een volwaardige music player in Flash/Flex/AIR reduceert tot enkele regels code. Of je nu maar 1 loop wilt laten spelen, of een volledige playlist wilt afspelen in Flash/Flex/AIR: Playr kan het sneller dan jij!

Playr kan je gebruiken om een enkele loop af te spelen, of voor volledige XML afspeellijsten te laten afspelen. Zowel shuffle als repeat zijn mogelijk. Ook de interactiviteit met de gebruiker kan snel worden toegevoegd.
De Playr class is ontworpen met snelheid en gemak voor ogen

Nabaztag/tag

Zoals je waarschijnlijk wel ziet is er iets klein gewijzigd op de site: De Flashmovie die toelaat om mij een klein berichtje te sturen, via mijn Nabaztag/tag 8ball. Dat wil dus zeggen dat ik een Nabaztag/tag heb, en dat is zo sinds vorige week vrijdag!

Heel funny gadget, wat nog eens duidelijk maakt welke absolute geek ik wel ben :D

Een Nabaztag/tag is een elektrisch konijn dat je allerhande info kan vertellen.

  • Hoe zal het weer morgen zijn?
  • Heb ik mail?
  • Wat staat er in mijn RSS feeds?
  • etc…

Ook kan dit WiFi-konijn berichtjes voorlezen die het gestuurd krijgt. Vanaf nu kun jij mij een berichtje sturen met de Flashmovie bovenin deze pagina.

Toen ik deze toepassing maakte was ik aan het denken over welk dataformaat ik in Flash zou gebruiken. SWX is nog altijd ActionScript 2 only, en dus moest ik het wel bij XML laten. Gelukkig hebben ze bij Nabaztag al gehoord van open standaarden, en maken ze dus ook gebruik van XML: Helemaal top!

Ik ging dus aan de slag, en even later testte ik mijn SWF, en *TADAA* mijn eerste Nabaztag berichtje door mijn Flashmovie. De SWF online gezet op mijn site, en daar nog even testen, en toen ging het mis… Ik was (weeral) vergeten dat de security sandbox van de Flash Player niet toelaat om gegevens op te halen vanop een ander domein zonder de toelating hiervoor te vragen.
Zoals altijd ga ik op het betreffende domein op zoek naar de crossdomain.xml, en die was er dus ook… Alleen zag die er niet uit zoals ik verwachtenabaztag-crossdomain.jpg

Bitmapdata + Soundmixer.computeSpectrum = Soundcoolness!

Een paar dagen geleden ben ik eens aan de slag gegaan met de bitmapdata class. En tegelijk heb ik ook eens gekeken hoe je gebruik kunt maken van de ‘computeSpectrum()’ method die de SoundMixer class te bieden heeft.

Na een half uurtje te prutsen had ik door hoe het werkte en ik kon ik ik er wat verder in gaan, en gebruik maken van de Filters die je in AS3 kunt gebruiken. Echt coole shit zit daarin!!

Ik heb wat speelse dingen gemaakt, en ik moet zeggen dat ik best wel onder de indruk ben van de kracht van AS3: telkens opnieuw vind ik AS3 een stuk cooler!

Hieronder staan de links naar de SWF’s

Enkele opmerkingen hierover:

Versie 5 is op zich wat zwaar. Ik wou een Windows Media Player-achtig effect namaken.
Versie 6 werkt in mijn lokale Flash Player zonder veel problemen, online lijkt dat een ander resultaat te zijn… Ik heb het gevoel dat dat met de security sandbox van de FlashPlayer te maken heeft. Als iemand weet wat het probleem is: Shout! Ook performantie tips zijn meer dan welkom, want ik heb al andere visualisaties gezien die maar tot 20% van de CPU gaan, terwijl deze hier met gemak de 50% halen.

De sources van deze items staan hier zodat je ernaar kunt kijken, en er zelf ook wat mee kan gaan spelen!
Gewoon ergens een MP3 plukken uit je collectie deze in bij je fla gaan plaatsen en de code zo aanpassen zodat je deze dan ook inlaadt. Ik geef mijn gebruikte liedjes in de voorbeelden niet mee door auteursrechten e.d. ;)

Aarzel niet om te posten wat er beter kan, wat jullie in elkaar gestoken hebben, of welke tips jullie voor me hebben! Ik hoor het graag.

Alvast veel plezier met de sources!

MusicPlayer documentatie aangepast

Ik heb zonet de nieuwe documentatie van de MusicPlayer class geüpload.

Deze kun je hier vinden.

Veel plezier/succes ermee. Aarzel niet om een vraag of een opmerking te posten. Ik sta open voor ideeën, toevoegingen, aanpassingen, liefdesbrieven, donaties, en contracten ;)