2012-03-22 50 views
4

我創建了一個遊戲,其中包含頁面上的多個元素, 當元素上的mouseover事件觸發了音頻文件播放時。HTML5/jquery - 預加載音頻的正確方法是什麼?

它的工作,但是,

我的問題是,什麼是預加載音頻正確的方法是什麼? 所以我可以確定,只要用戶與元素進行交互,我的音頻就會播放。

我目前initialsing鼠標懸停

$('.circle').mouseover(function() { 
    // retrieve ref from data- attribute 
    var noteIndex = $(this).attr('data-note'); 

    // locate url from the array notes using noteIndex ref 
    var snd = new Audio(notes[noteIndex]); 
    snd.play(); 
} 

我知道音頻標籤的我的音頻對象,但我不知道該如何從我的技術不同,上面。

編輯:我當前如何加載音頻http://jsfiddle.net/kA5Bv/1/的示例(請注意,鍵不會立即播放,這是因爲我使用的示例音頻文件在開始時的差距爲1/2秒左右)

由於提前, 凸輪

回答

0

怎麼樣的$(文件)。就緒(函數(){}),則它會在初始化DOM負載的音頻對象,加載網頁內容之前。

+0

DOM準備就緒後,文檔就緒函數會觸發,所以在內容加載之前不會。但在該功能中預先加載音頻可能是合適的。 – Spike 2012-03-22 11:33:22

+0

在$(document).ready中添加了mouseover事件,但這是否意味着在將mouseover事件添加到元素或在mouseover觸發元素事件時加載音頻文件。我的猜測是後者會導致連接速度變慢。 – Cam 2012-03-22 11:42:53

+0

當鼠標懸停事件在具有圓形類的元素上觸發時,它當前正在加載。如果你刪除它,只是把音頻設置在document.ready()中,它會在加載dom時加載 – RTulley 2012-03-22 11:48:42

相關問題