2012-12-25 41 views
1

我試圖在HTML5手機遊戲中使用音頻元素。 我有一些問題的聲音效果,所以我會克隆音頻elemnt多次在比賽中這樣開始:調用音頻元素在html5中播放的更快方式

for (var i=0; i < 10; i++) 
     { 
      var container = document.getElementById("audioDiv"); 
      var clone = document.getElementById('multiaudio0').cloneNode(true); 
      clone.setAttribute('id',"multiaudio" + i); 
      container.appendChild (clone); 
     }; 

然後,當我需要使用「碰撞」,我把它作爲NEXT :

document.getElementById('audioDiv').getElementsByTagName("audio")[score%10].play(); 

,這是很慢的,減緩在畫布上的動畫,同時調用元素,併發揮它的問題!!!! 有些時候它也不工作!

關於HTML5手機遊戲聲音的任何想法(無閃光燈),或快速調用元素的最佳做法而不是document.getElementById ???

+0

您可以嘗試使用'Audio'類而不是使用DOM。因此,您需要爲每個使用的聲音保留一個'Audio'對象,並且可以模擬用'audioObject.play()'播放聲音。 – Rikonator

回答

1

我會建議預先定義包含指針到各種音頻元素的數組調用一個之前(而不是重複document.getElementById('audioDiv').getElementsByTagName("audio")查找多次 還要確保您已預先加載的音頻採樣,使他們被緩存並且您在第一次需要時不等待網絡資源

如果您正在研究基於HTML5的遊戲,我建議您查看EaselJS框架,特別是SoundJS作品... http://www.createjs.com/#!/SoundJS