0
我需要連續播放三首音樂曲目。它不需要再次加載並且在緩存中。 我使用這段代碼。一切工作正常localhost,但只適用於重新啓動服務器上的應用程序。每次重新下載曲目都是錯誤的。如何在AS3中播放音樂曲目?
public function musicOn():void{
if (sndStart == 'true'){
req = new URLRequest("media/" + track + ".mp3");
snd.load(req);
channel = snd.play();
channel.addEventListener(Event.SOUND_COMPLETE, onPlaybackComplete);
sndStart = 'false';
} else {
sndStart = 'true';
}
}
public function musicOff():void{
if (snd.length>0){
channel.stop();
snd = new Sound();
channel = new SoundChannel();
sndStart = 'true';
}
}
public function onPlaybackComplete(event:Event):void
{
if (track==3){
track = 1;
} else {
track++;
}
sndStart = 'true';
snd = new Sound();
musicOn();
}
我運行這些功能:
if (optObj.music == 'true' && sndStart == 'true'){
musicOn();
} else if (optObj.music == 'false'){
musicOff();
}
optObj.music - 這是當應用程序啓動時,或者當我調用一個函數更改設置時調用的參數的對象。
謝謝weltraumpirat 但是同樣的問題。如果我在刷新後調用函數musicOn(),則音樂不會第一次播放,而只會第二次播放。 – Astraport 2010-12-19 18:40:08
那麼你必須有一些其他問題,在你的程序中的其他地方 - 我只是嘗試在我的服務器上完全相同的腳本,並且它工作正常。也許這是按鈕調用方法?或者你是否從上面的腳本中輸入了if(sndStart =='true')?也許你忘了在程序啓動時設置sndStart ='true'? – weltraumpirat 2010-12-19 18:51:50
是的,問題在別處。我使用單獨的窗口設置,將參數傳遞給主應用程序。不知何故,它並不總是通過適當的選擇。現在我會處理。再次感謝。 – Astraport 2010-12-19 19:05:13