Wie kann ich eine bestimmte setTimeout
Schleife mit clearTimeout(myVar)
stoppen?Wie Stop Spezifische setTimeout Schleife Verwenden von clearTimeout
Ich verwende mehrere Rückrufe, die eindeutige Audiodateinamen als Parameter enthalten. Wenn die Funktion triggerAudio
einen Rückruf erhält, wird eine Audiodateischleife gestartet. Das Problem ist, dass, wenn ich mehr als eine setTimeout-Audio-Schleife gestartet habe (d. H. Mehrere Sounds gleichzeitig spielen), wie kann ich einen bestimmten Loop/Sound/setTimout stoppen? Anders gesagt, wie kann ich wählen, welcher Audio-Loop gestoppt wird?
// starts 1.wav looping
(function loopStart() {
triggerAudio('1.wav');
}());
// starts 2.wav looping
(function loopStart() {
triggerAudio('2.wav');
}());
// stops one of the audio loops after 5 seconds
setTimeout(function() {
(function loopStop() {
clearTimeout(myVar); // not sure how to control which function this will stop/clear
}());
}, 5000);
// main functino that loops the files noted by the callbacks
function triggerAudio(soundFileName) {
// code that starts and loops audio file with setTimeout loop
}
Ich vermute, ich muss irgendwie Namen (ich bin der Terminologie nicht sicher) die setTimeout
von jedem Rückruf gestartet, so dass ich, dass man aufhören kann? Aber ich bin mir nicht sicher, wie ich das angehen soll.