直接上代码:
@property({ type: cc.AudioClip })
clip1: cc.AudioClip = null;
@property({ type: cc.AudioClip })
clip2: cc.AudioClip = null;
onLoad() {
let clip1ID = cc.audioEngine.playEffect(this.clip1, false);
cc.audioEngine.setFinishCallback(clip1ID, () => {
console.log('after clip1');
});
}
playClip2() {
cc.audioEngine.playEffect(this.clip2, false);
}
有两个音频 clip1 和 clip2,只对 clip1 设置了 setFinishCallback
回调,然后播放 clip2 (即调用 playClip2 方法),结果每次 clip2 音频播放结束,都会去触发 clip1 设置的 setFinishCallback
回调…下图是我调用了 13 次 playClip2 方法的结果:
然后原本的游戏音频+逻辑就都变得乱七八糟的了 T T