2016-08-03 29 views
1

WordPress的網站。腳本排入隊伍等。我能夠在沒有陣列的情況下獲得單個音頻文件。播放多個音頻文件與一個點擊事件咆哮js

雖然使用此之後...

(function($) { 
'use strict'; 

jQuery(window).load(function() { 
    var sound_files = { 
      sound1 : new Howl({ 
       src: ['/synthv2.mp3'], 
       loop: true 
      }), 
      sound2 : new Howl({ 
       src: ['/synthv2.mp3'], 
       loop: true 
      }), 
      sound3 : new Howl({ 
       src: ['/synthv2.mp3'], 
       loop: true 
      }) 
     }; 
    var play_button = $('#play-button'), 
     pause_button = $('#pause-button'), 
     shift_preset = $('#preset-changer'), 

    play_button.click(function() { 
     sound_files.play(); 
    }); 
}); 

})(jQuery); 

我一直得到sound_files.play不是一個函數錯誤。

如何通過單擊按鈕同時觸發聲音1,聲音2和聲音3?

+0

那是因爲你還沒有定義調用函數'play'上'sound_files'。你需要調用'sound_files.sound1.play(); sound_files.sound2.play();'等或[迭代對象](http://stackoverflow.com/q/8312459/371184)並以這種方式播放它們。 –

+0

感謝mike ...結合您提供的鏈接和來自FrankerZ的代碼,利用您的評論。 – user3549735

+0

您是否可以添加完整的解決方案 – Learning

回答

0

sound_files是一個對象,所以你不能簡單地在它們上面調用.play()

你會需要遍歷他們,發揮他們所有:

for (var prop in sound_files) { 
    // skip loop if the property is from prototype 
    if(!sound_files.hasOwnProperty(prop)) continue; 

    sound_files[prop].play(); 
}); 
+0

釘了它...仍在學習,但非常快速和容易的概念獲得 – user3549735

0

,或者你可以...

var sound_files = { 
     sound1 : new Howl({ 
      src: ['/synthv2.mp3'], 
      loop: true 
     }), 
     sound2 : new Howl({ 
      src: ['/synthv2.mp3'], 
      loop: true 
     }), 
     sound3 : new Howl({ 
      src: ['/synthv2.mp3'], 
      loop: true 
     }), 
     play: function(){ 
      this.sound1.play(); 
      this.sound2.play(); 
      this.sound3.play(); 
     } 
    }; 
相關問題