[AS3] Mp3Loader

package {
import flash.events.Event;
import flash.events.EventDispatcher;
import flash.media.Sound;
import flash.media.SoundChannel;
import flash.media.SoundTransform;
import flash.net.URLRequest;

public class Mp3Loader extends EventDispatcher {
public static const LOADED:String = “loaded”;
public static const FINISHED_PLAYING:String = “finishedPlaying”;

private var _url:String;
private var _sound:Sound;
private var _channel:SoundChannel;

public function Mp3Loader(url:String) {
_url = url;
_sound = new Sound(new URLRequest(_url));
_sound.addEventListener(Event.COMPLETE, OnMp3Loaded);
}

/* GETTERS *******************************************************************************/
public function get channel():SoundChannel {
return _channel;
}

public function get sound():Sound {
return _sound;
}

/* SETTERS *******************************************************************************/
public function PlayMusic():void {
_channel = _sound.play();
_channel.addEventListener(Event.SOUND_COMPLETE, OnSongOver);
}

public function StopMusic():void {
if (_channel != null) {
_channel.removeEventListener(Event.SOUND_COMPLETE, OnSongOver);
_channel.stop();
}
}

/* EVENT DISPATCHERS *********************************************************************/
private function OnMp3Loaded(e:Event):void {
dispatchEvent(new Event(Mp3Loader.LOADED));
}

private function OnSongOver(e:Event):void {
dispatchEvent(new Event(Mp3Loader.FINISHED_PLAYING));
}
}
}

Advertisement

~ by rotaercz on 2010-July-29.

Leave a Reply

Fill in your details below or click an icon to log in:

WordPress.com Logo

You are commenting using your WordPress.com account. Log Out / Change )

Twitter picture

You are commenting using your Twitter account. Log Out / Change )

Facebook photo

You are commenting using your Facebook account. Log Out / Change )

Connecting to %s

 
Follow

Get every new post delivered to your Inbox.