2014-09-03 73 views
3

我創建了一個非常基本的HTML5遊戲,我打了一個小牆,基本上我有一個數組,這個數組填充了一個聲音文件(它是一個聲音文件陣列所以,如果需要,我可以分配更多的聲音)HTML5 JS同時播放多次相同的聲音

this.Sounds["L_Explosion1"] = new Audio("Assets/Sounds/Explosion_1.wav"); 
this.Sounds["L_Explosion1"].volume = 1; 
this.Sounds["L_Explosion1"].load(); 

當玩家之前再次按下空格鍵我想,所以我運行此代碼,如果我按空格鍵來播放聲音

this.Sounds["L_Explosion1"].play(); 

然而,聲音播放它不會播放它,我試圖做的是播放相同的聲音多次事件如果SA我還沒有完成,我將如何實現這一目標?

回答

4

爲了同時播放聲音的多個實例,您需要創建該元素的新副本。一種方法是使用.cloneNode()方法,並在每次按空格鍵時播放克隆的音頻。

this.Sounds["L_Explosion1"].cloneNode(true).play(); 
+0

這工作正常,但你需要提供cloneNode參數(true或false)http://www.w3schools.com/dom/met_element_clonenode.asp – Canvas 2014-09-03 22:42:06

+1

這個鏈接指向XML DOM .cloneNode ()方法,它需要參數。但對於HTML DOM .cloneNode(),參數是可選的。請參閱:http://www.w3schools.com/jsref/met_node_clonenode.asp 但是,Firefox最近在其.cloneNode()實現中切換了可選參數的默認值,因此安全的做法是始終提供參數使用.cloneNode()時。請參閱:https://developer.mozilla.org/en-US/docs/Web/API/Node.cloneNode – 2014-09-03 22:49:30

+0

這是否會在每次按空格鍵時複製聲音?有沒有辦法清理聲音?或刪除('結束')節點? – 2017-08-16 19:51:49