setInterval - Problem/Frage

JaguarGorgone

Mitglied
Hallo,

ich habe ein Problem mit und eine Verständnisfrage zu setInterval:

Ich habe einen Film, der zwischendurch mehrfach gestoppt wird. Dazu habe ich folgende Funktion, die im jeweiligen Bild liegt, an dem der Film stoppen soll:
Code:
stop();
steuerb1 = function () {
	play();
};
inter = setInterval(steuerb1, 5000);
Generell funktioniert das auch. Jedoch gibt es im Flashplayer unregelmässig Fehler. Es scheint, als würde Flash den setInterval-Befehl manchmal ignorieren und der Film läuft ohne Pause weiter.

Jetzt habe ich die Funktion noch um den clearInterval-Befehl erweitert:
Code:
stop();
steuerb1 = function () {
	play();
	clearInterval(inter);
};
inter = setInterval(steuerb1, 5000);
Bis jetzt ist der vorherigen Fehler noch nicht wieder aufgetaucht. Da er das vorher auch nur unregelmässig getan hat, bin ich mir nicht sicher, ob die Lösung jetzt richtig ist.

Die Flashhilfe hat mir leider nicht geholfen, ebensowenig habe ich hier im Forum was Passendes gefunden.

Kann mir jemand kurz einen Tipp oder eine Erklärung liefern, wie das funktioniert und warum dieser Fehler auftaucht.

Vielen Dank
 
Das mit clearInterval ist korrekt.

Wird ein Interval gestartet, ruft es die angegebene Funktion in entsprechenden Abständen auf und zwar so lange, bis es gelöscht wird.
Wird ein neues Interval gestartet, wird dieses zusätzlich initialisiert, das alte bleibt jedoch bestehen. Das heißt es laufen beide gleichzeitig, nach dem dritten drei usw. Da kommt es logischerweise irgendwann zu Überschneidungen.
Ist ungefähr wie wenn du jedes Mal (unabhängig davon, zu welcher Tageszeit du zu Bett gehst) einen neuen Wecker kaufst und diesen auf fünf Stunden später stellst, den alten aber nicht ausschaltest. Da hast irgendwann den ganzen Tag über ein schönes Klingelkonzert. ;)

clearInterval in der Funktion löscht in diesem Fall das Interval, das diese gerade aufgrufen hat.

Gruß
Rena
 
Zurück