所以這一個讓我難住。我的網站計劃是從XML文件中提取音樂曲目,這些文件充當菜單按鈕加載的各種.swfs的背景音樂。即點擊「家」,它會將您帶回家.swf並播放適當的音樂。我想通過XML來做到這一點,而不是直接將音樂附加到.swf以減少加載時間(同步不是問題),因爲我似乎無法保留音頻質量而不會顯着增大.swf。AS3 - 帶單軌循環的XML播放列表
我遇到了兩個問題:一個是用當前代碼,音樂只播放一次,並且不循環。另一個是我希望功能可以播放一首歌作爲介紹,然後繼續循環播放。也就是說,點擊主頁按鈕,播放介紹,然後是循環部分,並且除非您再次打開主頁,否則不會返回到介紹頁面。我似乎無法弄清楚如何管理其中的任何一種功能,而無需爲每個按鈕創建一個獨特的功能。
下面是我使用的代碼:
var my_songs:XMLList;
var my_total:Number;
var my_sound:Sound;
var my_channel:SoundChannel;
var current_song:Number;
var myXMLLoader:URLLoader = new URLLoader();
myXMLLoader.load(new URLRequest("playlist.xml"));
myXMLLoader.addEventListener(Event.COMPLETE, processXML);
function processXML(e:Event):void {
var myXML:XML = new XML(e.target.data);
my_songs = myXML.SONG;
my_total = my_songs.length();
//playSong(0);
myXMLLoader.removeEventListener(Event.COMPLETE, processXML);
myXMLLoader = null;
}
function playSong(mySong:Number):void {
var myURL = my_songs[mySong][email protected];
if (my_channel) {
my_channel.stop();
my_channel.removeEventListener(Event.SOUND_COMPLETE, playSong);
}
my_sound = new Sound();
my_sound.load(new URLRequest(myURL));
my_channel = my_sound.play();
my_channel.addEventListener(Event.SOUND_COMPLETE, playSong);
}
test_btn.addEventListener(MouseEvent.CLICK, onPlay);
function onPlay(e:MouseEvent):void {
playSong(0);
}
預先感謝任何幫助,您可以給!
感謝Parele!我做了一些研究,我相信我已經通過在腳本開頭聲明SoundLoaderContext變量來設置流,然後更改「my_sound.load(newURLRequest(myURL));」到「my_sound.load(newURLRequest(myURL),上下文);」 - 至少這似乎是所有需要的,但我必須稍後再測試它。 – DoomJTHM 2012-03-26 21:39:22
不幸的是,我不太清楚我應該如何處理您提供的線路。我猜我想定義一個像這樣的新功能?我只是不確定它應該放在哪裏或者它完成了什麼。對於新問題抱歉,迄今爲止您的幫助非常棒! = X – DoomJTHM 2012-03-26 21:42:39