Javascript onfinish在使用SoundManager2时提前触发
当SoundManager2中的声音播放完毕时,我尝试使用onfinished启动一个函数。我的代码如下:Javascript onfinish在使用SoundManager2时提前触发,javascript,audio,soundmanager2,Javascript,Audio,Soundmanager2,当SoundManager2中的声音播放完毕时,我尝试使用onfinished启动一个函数。我的代码如下: function createSound(id, path) { mySound = soundManager.createSound({ id: id, url: path, volume: 100, onfinish: playNextSound(id), (
function createSound(id, path) {
mySound = soundManager.createSound({
id: id,
url: path,
volume: 100,
onfinish: playNextSound(id),
(...)
},
});
return mySound;
}
function playNextSound(id) {
(...)
alert("Done!");
}
但是,每当我单击play时,就会触发函数(并显示警报),这显然不是应该发生的。我也尝试过将onfinish放在play()函数中,但没有效果
你知道有什么问题吗?因为你正在执行
playNextSound
函数并将其返回值赋给onfinish
你应该这样做:
onfinish: playNextSound,
然后如何将参数传递给playNextSound?我必须内联函数吗?(相当长…)只需将
playNextSound
函数放入createSound
函数中,并确保从函数声明中删除id
参数:function playNextSound(){
。函数中对id
的任何引用都将引用传递到createSound
中的id
。