2016-08-03 13 views
1

Wordpress-Website. Skripte in die Warteschlange gestellt usw. Ich konnte eine einzelne Audiodatei ohne das Array abspielen lassen.Spielen Sie mehrere Audio-Dateien mit einem Klick Event Howler js

Danach allerdings mit ...

(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); 

ich sound_files.play konsequent bekommen ist keine Funktion Fehler.

Wie kann ich Sound1, Sound2 und Sound3 alle gleichzeitig mit einem einzigen Klick auslösen?

+0

Das ist, weil Sie nicht eine Funktion namens 'play' auf definiert haben 'sound_files'. Sie müssen entweder 'sound_files.sound1.play(); sound_files.sound2.play(); 'etc. oder [iteriere über das Objekt] (http://stackoverflow.com/q/8312459/371184) und spiele sie so. –

+0

danke Mike ... hat deinen Kommentar in Verbindung mit dem von dir angegebenen Link und dem Code von FrankerZ benutzt. – user3549735

+0

können Sie die komplette Lösung auch – Learning

Antwort

0

sound_files ist ein Objekt, so dass Sie nicht einfach .play() auf ihnen aufrufen können.

Sie eine Schleife durch sie brauchen würde, und spielen sie alle:

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

genagelt es ... immer noch lernen, aber sehr schnell und einfach Konzept zu bekommen – user3549735

0

oder man konnte ...

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(); 
     } 
    };