package { import flash.media.Sound; import flash.media.SoundChannel; import flash.net.URLRequest; import flash.events.Event; public class MusicBox { private var streamInfo:StreamInfo; private var tracks:Array; private var playing:Boolean; private var looping:Boolean; private var shuffling:Boolean; public function MusicBox(streamInfo:StreamInfo) { this.streamInfo = streamInfo; this.tracks = new Array(); this.playing = false; this. looping = false; this.shuffling = false; this.streamInfo.addEventListener(StreamInfo.INFO_UPDATE, this.setTrackNames); } public function play() { this.playing = true; } private function setTrackNames(e:Event) { var trackNames = this.streamInfo.getStreamParameter("MusicBoxTracks").split(',').map(Util.trim); for each(var trackName in trackNames) { var track:Object = {name: trackName, sound: false} this.tracks.push(track); } this.loadTracks(); } private function loadTracks() { for each(var track in this.tracks) { var snd:Sound = new Sound(); snd.load(new URLRequest(this.streamInfo.getStreamParameter("MusicBoxBase") + "/" + track.name)); snd.addEventListener(Event.COMPLETE, function(e:Event) { track.sound = snd; }); } } } }