2013-03-28 48 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侦听器)中等待,直到它最终加载,然后恢复播放列表播放。