Archive for the 'Actionscript' Category

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 ;)

Open-source MP3 Player Class: MusicPlayer (Beta release)

Update: De MusicPlayer class is uit beta, en is nu gekend als Playr. Lees er meer over, en download de class hier.

Na lang wachten heb ik vandaag eindelijk al mijn ditjes en datjes in mijn MusicPlayer class kunnen afwerken.

De player beschikt nu over de volgende properties:

  • Autoplay
  • Playlist laden (XML)
  • De buttonacties instellen
  • 2 progress events (Vooruitgang van inladen van de track, alsook de vooruitgang van de track zelf)
  • Enkele track inladen
  • Repeat
  • ID3 ondersteuning

Wat nog op het programma staat:

  • Shuffle
  • Visualisatie module

Er zijn een aantal wijzigingen in de class gebeurd, waardoor je waarschijnlijk je code zult moeten aanpassen in je huidige projecten. Zo is de import regel iets gewijzigd, gezien de MusicPlayer class zijn eigen events nodig heeft (PlayerEvents). Ik heb de hiërarchie dan ook ietje gewijzigd zodat je geen meerdere imports moet uitvoeren.

De code ziet er voortaan zo uit:

import com.nocreativity.playr.*;
var myPlayer:Playr = new Playr();
myPlayer.autoPlay=true;
myPlayer.repeat = true;
myPlayer.volume = 100;
myPlayer.loadPlaylist("playlist.xml");
myPlayer.registerPlayButton(btnPlay);
myPlayer.registerStopButton(btnStop);
myPlayer.registerPauseButton(btnPause);
myPlayer.registerNextButton(btnNext);
myPlayer.registerPreviousButton(btnPrevious);
myPlayer.registerMuteButton(btnMute);
myPlayer.ID3SourceEnabled =true;

myPlayer.addEventListener(PlayerEvent.SONGINFO,infoHandler);
myPlayer.addEventListener(PlayerEvent.SONG_PROGRESS,songprogressHandler);
myPlayer.addEventListener(PlayerEvent.LOAD_PROGRESS,loadprogressHandler);

function songprogressHandler(e:PlayerEvent):void{
txtSongProgress.text = "song progress: " + e.songprogress;
}
function loadprogressHandler(e:PlayerEvent):void{
txtLoadProgress.text = "load progress: " + e.loadprogress;
}

function infoHandler(e:PlayerEvent):void{
txtTrackInfo.text = myPlayer.artist;
txtTrackInfo.appendText(" - " + myPlayer.trackName);
txtTrackInfo.appendText(" (" +myPlayer.album+")");
txtTrackInfo.appendText(" | " + myPlayer.trackDuration);
}

In het bovenstaande voorbeeld is ook de ID3SourceEnabled gebruikt: deze boolean laat je kiezen of je de ID3tag van je MP3 bestanden wilt gebruiken als bron voor de artist, album en trackName eigenschappen. Als je deze waarde op true zet wordt de artist, album en title tag uit je XML bestand genegeerd, en kun je je XML bestand dus gewoon korter maken. Zet je dit op false wordt je XML bestand als bron van deze eigenschappen gebruikt. Dus als je ID3tags niet naar behoren zijn ingevuld is dit een secundaire oplossing.

Ook de XML heeft een kleine wijziging ondergaan: Er is een nieuwe tag bijgekomen (totalTime): de totale tijd (in seconden) die het betreffende liedje duurt. Dus in geval van een track van 3 minuten en 28 seconden komt dat op 208 (3*60+28) uit. Deze waarde moet handmatig ingegeven worden. Het kan ook via ID3tag maar is precies omslachtig… Als iemand de gouden tip heeft is dit welkom.

Download:

De huidige versie kun je hier downloaden.
Een voorbeeld hoe de XML er moet uitzien staat hier.
Een voorbeeld kun je hier downloaden.
De documentatie heb ik nog niet geupdate, maar dat komt er zo snel mogelijk aan.

Naamsvermelding & Gelijk delen Ik release de MusicPlayer class en de PlayerEvent class onder de Creative Commons license. Dat wil zeggen dat je alles in deze classes mag aanpassen zolang je er een verwijzing naar de originele auteur ( ik dus ;)) in laat staan, en je deze classes met dezelfde rechten verder verdeeld.

Tutorial over hoe mail te versturen vanuit Flash (AS3)

Sinds ik bezig ben met ActionScript 3 ben ik er niet meer van af te krijgen.

Onlangs werd op mijn schoolforum gevraagd hoe je nu een mail kunt verzenden vanuit Flash met AS3 (gezien de LoadVars klasse uit AS2 er niet meer is).
Toen besloot ik er een kleine tutorial over te maken, en die is er dan ook gekomen.

Tutorial: Mail verzenden vanuit Flash CS3

Veel plezier.

Vragen en suggesties zijn zeker welkom.

Open-source MP3 Player Class: MusicPlayer

Update: Er is een nieuwe versie van deze klasse die je hier kan vinden. De download van deze versie heb ik verwijderd om die reden.

Update 2: De MusicPlayer class is uit beta, en is nu gekend als Playr. Lees er meer over, en download de nieuwe class hier.

Ik heb zonet mijn eerste Actionscript 3 experiment afgewerkt.
Het resultaat is een musicplayer class die iedereen voor z’n eigen doeleinden mag gebruiken.
Voor mij was het een leuke en uitgebreide oefening, maar gezien ik niet meer verder zal werken aan de Actionscript 2 versie van de musicplayer lijkt dit me een mooi vervolg.

Wat Actionscript 3 zelf betreft: Ik ben er helemaal van onder de indruk. Even aanpassen, maar eens ik het door had was het erg makkelijk om over te schakelen.

Ik heb de class gebouwd met het oog op simpel bij gebruik. De uiteindelijke gebruiker van de class moet zo weinig mogelijk zelf doen. Dat is me ook gelukt.

Je kunt gebruik maken van een XML bestand om je playlist op te maken: Voorbeeld

Voorbeeld 1:
Erg minimaal gebruik van de class.

import com.nocreativity.playr.*;
var myPlayer:Playr = new Playr();
myPlayer.autoPlay=true;
myPlayer.loadPlaylist("playlist.xml");

Voorbeeld 2:
Gebruik van de buttonhandlers, repeat eigenschap, en volume door middel van de class.

import com.nocreativity.playr.*;
var myPlayer:Playr = new Playr();
myPlayer.autoPlay=true;
myPlayer.repeat = true;
myPlayer.volume = 100;
myPlayer.loadPlaylist("playlist.xml");
myPlayer.registerPlayButton(btnPlay);
myPlayer.registerStopButton(btnStop);
myPlayer.registerPauseButton(btnPause);
myPlayer.registerNextButton(btnNext);
myPlayer.registerPreviousButton(btnPrevious);
myPlayer.registerMuteButton(btnMute);

-Nieuwe versie hier te vinden-

Indien je vragen, opmerkingen, suggesties hebt: Aarzel niet om ze hier te stellen!
Ontdek je bugs, of zijn er onvolmaaktheden? Post ze hier!
Gelijk welke reden dan ook: laat me iets weten.

Indien je mijn class gebruikt, laat me iets weten zodat ik een idee heb of jullie er iets aan hebben!

Veel succes en plezier ermee :)

SWX is vanaf nu WEL een optie!

Aral Balkan heeft een tijdje geleden heel wat ophef bij mij bezorgd toen ik in zijn presentaties als ‘XML/SM - fan’ bestempeld werd. Ik kon er toen erg mee lachen omdat ik XML op zich best makkelijk vind.

Na mijn serververhuis van enkele dagen geleden heb ik deze blogpost van Aral Balkan gelezen, en gezien dat SWX blijkbaar kan gebruikt worden op bestaande PHP servers.
Ikzelf dacht altijd dat SWX een eigen server nodig had. Bijgevolg verwachtte ik niet dat SWX binnen korte tijd zou kunnen doorbreken.

Natuurlijk heb ik na dit ontdekken meteen de SWX files geüpload, en enkele testjes gedaan.

Aral had gelijk: XML haalt het inderdaad niet van SWX. (nog niet in ieder geval ;-))

Enkele links:
Download MAMP (PHP Development omgeving met SWX)
Download SWX PHP (PHP bestanden die SWX mogelijk maakt op eigen server)
SWX homepage