作者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