2012-11-28 85 views
0

我有一個代碼,我不能叫ShowMedalMessage()函數呼叫從使用addEventListener()

var totalsounds = 3; 
var currentsound = 1; 
var audioElement = document.createElement('audio'); 
audioElement.setAttribute('src', 'notify.wav'); 
audioElement.setAttribute('autoplay', 'autoplay'); 
audioElement.addEventListener('ended', function() { 
    if (currentsound < totalsounds) { 
     this.currentTime = 0; 
     this.play(); 
     currentsound = currentsound + 1; 
    } 
    ShowMedalMessage(1); 
}, false);​ 

如果調用該函數之前audioElement.addEventListener,它調用正確的函數,但是如果行ShowMedalMessage(1);就在裏面,它不工作:(

謝謝!

+0

你檢查控制檯日誌在Chrome/Firefox的錯誤?我沒有看到任何錯誤的代碼。 –

+0

它可能不會在事件發生時啓動,它會記錄一些錯誤? –

+0

我看,在Firefox不工作的音頻播放...與o r沒有ShowMedalMessage()...怪異的:/ – MGE

回答

0

這個工作對我來說在Chrome和Firefox中。

是灰褐色現場example

function showMessage() { 
    document.write("Sound played"); 
} 

var totalsounds = 3; 
var currentsound = 1; 
var audioElement = document.createElement('audio'); 
audioElement.setAttribute('src', 'http://www.wav-sounds.com/cartoon/bugsbunny1.wav'); 
audioElement.setAttribute('autoplay', 'autoplay'); 
audioElement.addEventListener('ended', function() { 
    if (currentsound < totalsounds) { 
     this.currentTime = 0; 
     this.play(); 
     currentsound = currentsound + 1; 
    } 
    showMessage(); 
}, false); 

document.body.appendChild(audioElement); 
+0

不能在firefox中工作..我不知道爲什麼,我無法訪問ShowMedalMessage從其他功能...怪異的。 – MGE

+0

現場示例是否適合您?如果它在Firefox中不起作用,請嘗試更新瀏覽器。 – AlexandruSerban

+0

你的例子正在工作,但不是我的firefox http://bit.ly/U2YrdM,正如你所看到的,該功能並沒有在任何瀏覽器中調用 – MGE