Animation mit dem Timer Objekt in AS 3

Animationen mit Flash zu erstellen ist nicht schwer. Man setzt einfach 2 Schlüsselbilder in die Zeitleiste, verschiebt den gewünschten Movieclip und schon hat man eine saubere Animation.

Wie aber sieht es aus, wenn man das ganze mit Actionscript erreichen will. Mit AS 2 hatte man da noch die Möglichkeit über setInterval() oder onEnterFrame(), eine gewünschte Funktion immer wiederkehrend aufzrufen. Das kann man natürlich auch noch mit AS 3. Neu in AS 3 ist aber die Klasse Timer. Diese erlaubt ebenfalls das wiederholte Aufrufen einer Funktion und ersetzt dank vieler neuen Features quasi setInterval(). Die Klasse selbst findest du unter flash.utils.

Und so gehts:

1. Timer Objekt erstellen:

var timer:Timer = new Timer(Zeitverzögerung, Wiederholungen);

Zeitverzögerung wird hierbei in Millisekunden angegeben und Wiederholungen bedeutet die maximale Anzahl an Wiederholungen bevor der Timer endet.

2. Event Listener erstellen, der die entsprechende Funktion aufruft:

timer.addEventListener(TimerEvent.TIMER, funktionsname);

TimerEvent kennt zwei Ereignisse: TIMER fängt jede Wiederholung ab, TIMER_COMPLETE wird einmal ausgeführt, wenn der Timer das Ende erreicht hat.

3.Timer starten:

timer.start();

Hier noch ein Beispiel anhand eines beliebigen Movieclips mit dem Instanznamen “mc”.

var timer:Timer = new Timer(20, 200);
timer.addEventListener(TimerEvent.TIMER, moving);
timer.start();

function moving(evt: TimerEvent){
mc.x += 3;
if(mc.x >= Stage.stageWidth){
timer.stop();
}
}

Darüber hinaus gibt es noch die Methode reset(), die den Timer zurücksetzt und currentCount, die ausliest bei wievielen Wiederholungen sich der Timer gerade befindet. running gibt true oder false zurück, je nachdem ob der Timer gerade läuft oder nicht.