clearInterval funktioniert nicht

intercorni

Erfahrenes Mitglied
Ich habe ein Problem: per Timer steuere ich die Anzeigedauer eines Bildes und wechsel dann nach Ablauf der Zeit zu einem anderen Frame/Bild.
Unabhängig davon soll man auch per Button manuell weiter schalten können.
Dazu unterbreche ich den Timer per "clearInterval" bzw. versuche es, was mir aber nicht gelingt.
Den Button habe ich so definiert:

PHP:
button_vor.onRelease = function() {
    reset();
	clearInterval( interval1 );
	nextFrame();
};

Nun der Timer:

PHP:
import mx.transitions.Tween;
import mx.transitions.easing.*;

var tween_handler1:Tween;

function einblender01 ():Void {
	tween_handler1 = new Tween(image1, "_alpha", None.easeIn, 0, 100, 1, true);
 

	tween_handler1.onMotionFinished = function() {
		trace("Einblender Finish1");

			var interval1:Number = setInterval( timer1, 250 );
			function timer1():Void
			{
   			verlaufsanzeige.nextFrame();
   
   			if ( verlaufsanzeige._currentframe == 20 )
   			{
      		clearInterval( interval1 );
			verlaufsanzeige.gotoAndStop(1);
			reset();
			play();
   			}
			} 


	};
};

Und am Schluss die Reset Funktion:

PHP:
function reset() {
	trace("Reset1");
	tween_handler1.stop();
	verlaufsanzeige.gotoAndStop(1);
	clearInterval( interval1 );
}

einblender01 ();

Selbständig läuft die Slide-Show ab. Sobald ich jedoch per Button weiterschalte, kommt der Timer aus den Fugen.
Das clearInterval kommt also nicht an, wenn ich den Button betätige, nur warum?

Danke,

Cornel.
 
Hallo,

das wird daran liegen, dass deine intervall-Variable nur innerhalb des Blockes gültig ist.

Versuchs mal so:
PHP:
import mx.transitions.Tween;
import mx.transitions.easing.*;
var tween_handler1:Tween;
var interval1:Number;
function einblender01():Void {
	tween_handler1 = new Tween(image, "_alpha", None.easeIn, 0, 100, 1, true);
	tween_handler1.onMotionFinished = function() {
		trace("Einblender Finish1");
		interval1 = setInterval(timer1, 250);
...

mfg
 
Zurück