2013-03-28 51 views
0

我對Flash非常不滿,我無法做到這一點。 我有php生成播放列表。 我用LoaderInfo()得到它,然後用split()將數據添加到數組中。AS3閃存中的播放列表循環

var paramObj:Object = LoaderInfo(this.root.loaderInfo).parameters; 
var str:String = paramObj.playlist; 
var array:Array = str.split(","); 

這是問題所在。我知道如何從播放列表中,一次或在循環播放1首歌曲有這樣的代碼:

sound.addEventListener(Event.COMPLETE, onLoadComplete, false, 0, 
true); 
function onLoadComplete(evt:Event):void { 
channel = sound.play(); 
var pauseSong:Number = channel.position; 
    channel.addEventListener(Event.SOUND_COMPLETE, soundCompleteHandler); 
} 
function soundCompleteHandler(e:Event):void { 

channel = sound.play(); 
channel.addEventListener(Event.SOUND_COMPLETE, soundCompleteHandler); 
} 

,但我不能讓代碼迴路負一打在播放列表中的所有歌曲,第二等,第一... 如何做到這一點?

回答

1

您製作一個加載聲音的數組,將一個單獨的偵聽器放到您的列表的第一個(第0個)聲音中,以啓動播放,其他所有其他應該有另一個偵聽器只會通知您的程序聲音已加載。一旦第一個聲音開始播放,您將添加一個聽衆到channel,它將選擇下一首歌曲並在可用時播放。如果它不可用,則代碼應該在基於幀的循環(具有一次檢查的Event.ENTER_FRAME偵聽器)中等待,直到它最終加載,然後恢復播放列表播放。