我尝试使用onfinished在SoundManager2中的声音播放完毕时触发一个函数。我的代码如下:

function createSound(id, path) {
    mySound = soundManager.createSound({
            id: id,
            url: path,
            volume: 100,
            onfinish: playNextSound(id),
            (...)
            },
    });
    return mySound;
}

function playNextSound(id) {
    (...)
    alert("Done!");
}

但是,发生的事情是,每当我单击播放时,该函数就会触发(并显示警报),这显然不应该发生。我也尝试过把infinish放在play()函数中,但无济于事。

任何想法可能有什么问题吗?

最佳答案

因为您正在执行playNextSound函数并将其返回值分配给onfinish

您应该这样做:

onfinish: playNextSound,

关于javascript - 使用SoundManager2时onfinish会提前触发,我们在Stack Overflow上找到一个类似的问题:https://stackoverflow.com/questions/16447154/

10-11 09:10