在全局声音管理器对象上完成

onfinish on global soundmanager object

本文关键字:对象 管理器 全局 声音      更新时间:2023-09-26

我想在我的声音结束时启动一个函数,这段代码有效:

var mysound;
var next = function(){
 alert('end');   
};
soundManager.onready(function () {
    mysound = soundManager.createSound({
        id:'foo',
        url:'http://soundbible.com/grab.php?id=2077&type=mp3'
    })
    mysound.play({onfinish:next});
    // change to this 
    // mysound.play();
 });
// in another .js
// mysound.onfinish(next) // doesn't work
// mysound.prototype.options.onfinish = next // doesn't work

我想做一些像我评论一样的事情。

JSFIDDLE 上的代码

问题是mysound在设置为正确的值之前尝试分配onfinish。

var mysound;
var next = function(){
 alert('end');   
};
function importedFromOtherFile( mysound ) {
  mySound.onfinish(next);
}
soundManager.onready(function () {
    mysound = soundManager.createSound({
        id:'foo',
        url:'http://soundbible.com/grab.php?id=2077&type=mp3'
    })
    mysound.play({onfinish:next});
    // change to this 
    functionImportedFromOtherFile(mysound);
 });

如果您希望它位于不同的文件中,请查看是否可以在设置后回拨它或使用MySound抛出一个偶数。