作者KawasumiMai (闇に沈んだ刃)
看板Flash
標題Re: [問題] 載入外部音樂 重複問題
時間Tue Aug 13 16:46:36 2013
※ 引述《palfan1225 (palfan)》之銘言:
: 原文恕刪,都沒看到回覆,只好再次發問,
: google好久、爬文,都無法解決,
: 再請各位大大賜教如何在不同的影格都loadSound。
: 不同影格播放不同音樂,而且各個影格的音樂都能重複播放。
: 請問"最初語法"是要作何修改呢?感謝回覆
: 最初語法如下
: var mySound = new Sound();
: mySound.loadSound("music.mp3", true);
: 最常看到的解決語法是(都試過,匯出影片都只能播放1次,沒有重複播放)
土法煉鋼
var bgm:Sound=new Sound() //新增一個聲音物件
var bgmSC:SoundChannel=new SoundChannel() //新增一個聲音控制物件
bgm.addEventListener(Event.COMPLETE,play_bgm) //新增一個"載入完成"事件
bgm.load(new URLRequest("music.mp3")) //載入檔案
//這個function在music.mp3載入完成後會執行一次
function play_bgm(event:Event){
bgmSC=bgm.play() //將聲音控制物件連結聲音物件
stage.addEventListener(Event.ENTER_FRAME,loop_bgm) //利用影格事件判定
}
function loop_bgm(event:Event){
if(bgmSC.position>=bgm.length-100){
bgmSC=new SoundChannel()
bgmSC=bgm.play(0)
}
}
length-100的100跟play(0)的0可以自行測試,可以達到無縫接軌
如果不需要只要都打0就可以了
用變數變更music.mp3然後load
這樣就不用用影格換音樂
--
※ 發信站: 批踢踢實業坊(ptt.cc)
◆ From: 1.175.7.125
1F:推 palfan1225:用影格換音樂,是因為不同影格我建了不同主題物件。想 08/13 22:37
2F:→ palfan1225:在不同主題播放不同的音樂。所以...K大的寫法是我直接 08/13 22:38
3F:→ palfan1225:複製您寫好的語法到影格的"動作",就OK了嗎?? (剛剛直 08/13 22:39
4F:→ palfan1225:接複製語法到影格的動作,有產生錯誤訊息,說"無法載入 08/13 22:40
5F:→ palfan1225:類別 'Event' " 08/13 22:40
沒注意到你的loadSound跟start()
這兩個方法看起來是AS2.0的,這篇寫的是3.0的
補上2.0的寫法,已經好久沒有碰了,剛剛測試了一下應該OK
影格1:
var mySound = new Sound();
mySound.onSoundComplete=function(){
mySound.start();
}
影格2:
mySound.loadSound("music.mp3",true);
stop();
這個寫法結果代表
在第一格對mySound新增了事件來loop音樂
接著第二格以後只要對mySound作loadSound("不同音樂")
就可以切換不同音樂了
P.S.前面用EnterFrame的判定方法,是之前研究"無縫"的結論
如果不需要作到無縫,可以直接使用內定的完成事件就好
※ 編輯: KawasumiMai 來自: 1.175.7.125 (08/13 23:16)
6F:推 palfan1225:k大,您第一個影格是如何判斷要載入的音樂檔名?請問您 08/13 23:35
7F:→ palfan1225:新寫的語法是第一個影格直接放入音樂至場景,第二個影 08/13 23:36
8F:→ palfan1225:格用load音樂的嗎。我要設置的影格有4個,我原本寫的語 08/13 23:37
9F:→ palfan1225:法是都可以換不同音樂,但不能重複播放音樂,是我比較 08/13 23:38
10F:→ palfan1225:困惱的>"< 08/13 23:38
11F:→ KawasumiMai:首先,你和我寫法的最大的差異,在於"事件" 08/13 23:39
12F:→ KawasumiMai:也就是第一格的onSoundComplete 08/13 23:40
13F:→ KawasumiMai:其次,"事件"是跟著"物件"的,只要滿足條件就會發動 08/13 23:40
14F:→ KawasumiMai:所以"每次歌曲結束"都會讓他再重新播放一次 08/13 23:40
15F:→ KawasumiMai:只要第一格寫了那三行,第二格以後就不用寫 08/13 23:41
16F:→ KawasumiMai:只要針對mySound去作loadSound跟start還有stop的動作 08/13 23:41
17F:→ KawasumiMai:第一格並沒有載入音樂,只有宣告物件跟事件 08/13 23:42
18F:→ KawasumiMai:第二格才叫他載入music.mp3,當然你可以用變數控制 08/13 23:42
※ 編輯: KawasumiMai 來自: 1.175.7.125 (08/13 23:50)
19F:推 palfan1225:解決了解決了,萬分感謝K大 (* ̄▽ ̄)/‧★*"`'*-., 08/14 21:20
20F:→ palfan1225:我把K大影格1的語法寫在另一個圖層。匯入音樂的不同影 08/14 21:21
21F:→ palfan1225:格在同一個圖層,都能使用"事件"的語法。謝謝K大的推文 08/14 21:22
22F:→ palfan1225:補充,才知道寫法的差異,就恍然頓悟了<(_ _)> 08/14 21:23