Problem mit setInterval

dreamer2007

Mitglied
Hallo,

ich habe nun schon eine Weile versucht eine Funktion von AS regelmäßig ausführen zu lassen. Das Problem ist aber, das die Funktion nur einmal am Anfang ausgeführt wird, dann aber nicht wieder. Mit Trace wird zwar angezeigt, dass setIntervall die Funktion ausführt, allerdings wird der sich darin befindliche Tween nur einmal ausgeführt. Vielleicht kann ja jemand von euch mal einen Blick auf den Code werfen:

PHP:
function tween() {	
        import mx.transitions.Tween;
	import mx.transitions.easing.*;
	var var_tween:Tween = new Tween(this.glow,"_x",Strong.easeInOut,-142,26,60,false);
	var_tween = new Tween(this.glow,"_y",Strong.easeInOut,-122,10,60,false);

	trace("Tween funktioniert");
        }

setInterval(tween,5000);

Viele Dank und Grüße
 
Hi,

1. solltest Du das Importieren der entsprechenden Klassen aus der Funktion herausnehmen und direkt ins erste Bild der Zeitleiste setzen.

2. kannst Du in der Funktion auf diese Weise nicht auf "this.glow" zugreifen, da Dir die Referenz auf die lokale Zeitleiste (this) verloren geht, wenn Du ein Intervall mit dieser Syntax aufrufst. Probiers so:
Code:
import mx.transitions.Tween;
import mx.transitions.easing.*;

function tween() {    
    var var_tween:Tween = new Tween(this.glow,"_x",Strong.easeInOut,-142,26,60,false);
    var_tween = new Tween(this.glow,"_y",Strong.easeInOut,-122,10,60,false);
}

setInterval(this, "tween", 5000);

Gruß
.
 
Hi,

ja, bei der Syntax mit Übergabe der ausführenden Zeitleiste wird der Funktionsname als String übergeben. Bei der Übergabe der Funktionsreferenz (1. Parameter) wird tatsächlich die Referenz übergeben - dabei geht Dir allerdings die Zeitleiste flöten.

Gruß
.
 
Zurück