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