我遇到了一个恼人的错误,基本上我正在使用第三方编辑器运行一个简单的游戏,我在场景开始时启动音频文件,并且在音频结束后我想要goToNextScene()是一个内置函数。我正在使用Buzz JavaScript库。但是我遇到了这个问题。如果我将事件监听器直接附加到声音var我得到一个“'undefined'不是函数”错误。
var SceneSound = new buzz.sound(".../something.m4a");
SceneSound.play();
SceneSound.addEventListener('ended', checkEnding, false);
function checkEnding() {
console.log("TEST");
controller.goToNextScene();
}
var SceneSound = new buzz.sound(".../something.m4a");
SceneSound.play();
var objAudio = document.querySelector("#SceneSound audio");
SceneSound.addEventListener('ended', checkEnding, false);
function checkEnding() {
console.log("TEST");
controller.goToNextScene();
}
声音播放和所有,它只是附加eventListener导致错误。有什么想法吗?
由于
答案 0 :(得分:0)
这是一个例子:
function strNS(i){
switch (i){
case 0 : return "EMPTY";
case 1 : return "IDLE";
case 2 : return "LOADING";
case 3 : return "NO SOURCE";
}
}
function strRS(i){
switch (i){
case 0 : return "NOTHING";
case 1 : return "METADATA";
case 2 : return "CURRENT_DATA";
case 3 : return "FUTURE_DATA";
case 4 : return "ENOUGH_DATA";
}
}
// Event Handler
function eh(e){
//console.log( "NS:" + strNS(e.currentTarget.networkState) + " RS:" + strRS(e.currentTarget.readyState));
}
function ensureEvent(obj, prop){
if (obj.hasOwnProperty('on' + prop)){
console.info(a + " does support '" + prop + "'")
obj.addEventListener(prop, eh);
}else{
console.log(a + " does not support '" + prop + "'");
}
}
var a = new Audio();
a.autoplay = true;
a.controls = true;
ensureEvent (a, 'loadstart');
ensureEvent (a, 'progress');
ensureEvent (a, 'suspend');
ensureEvent (a, 'load');
ensureEvent (a, 'abort');
ensureEvent (a, 'error');
ensureEvent (a, 'emptied');
ensureEvent (a, 'stalled');
ensureEvent (a, 'play');
ensureEvent (a, 'pause');
ensureEvent (a, 'loadedmetadata');
ensureEvent (a, 'loadeddata');
ensureEvent (a, 'waiting');
ensureEvent (a, 'playing');
ensureEvent (a, 'canplay');
ensureEvent (a, 'canplaythrough');
ensureEvent (a, 'seeking');
ensureEvent (a, 'timeupdate');
ensureEvent (a, 'ended');
ensureEvent (a, 'ratechange');
ensureEvent (a, 'durationchange');
a.src = "blablabla.mp3";
a.play();