for(var i=0; i<sounds.length; ++i){
window.setTimeout(function(){
//Blabla
}, time);
time += 500;
console.log(time);
}
Es sollte eigentlich folgendes passieren:
Es werden x Intervalle im Abstand von 500ms erstellt, die einen Code ausführen.
Dann sollte eigentlich alle 500ms der Code ausgeführt werden (in einer anderen Weise).
Warum funktioniert das nun nicht? (es wird alles gleichzeitig ausgeführt)
LG
Willibergi
var end = false;
var dl = 0;
var sndI = window.setInterval(function(){
if(sounds.length > 0){
var rs = sounds.randsplice();
++dl;
switch(rs){
case "q":
s1.play();
break;
case "m":
s2.play();
break;
}
}else{
window.clearInterval(sndI);
console.info("Cleared!");
}
}, 500);
Ich will Sounds abspielen, aber nacheinander!
Mit diesem Code spielen beide wild durcheinander…
Im Array sounds sind Werte zweier Arten vorhanden: „q“ und „m“…
Warum funktioniert das nicht?
Dazu würde ich einen anderen Ansatz wählen. Es gibt in HTML5 die Audio API und diese hat ein Event namens onended(). Erzeuge ein Audio-Tag, welches seine source aus dem Array bezieht und nach dem abspielen mit dem nächsten Array-Element neu lädt.
Ein Audio-Tag ist ein einfaches HTML-Element. Das kann onload per autoplay spielen oder bsw. mit einem Click-Event getriggert werden. Google mal nach der Audio API.