Det bästa sättet att hantera timingfunktioner i ActionScript 3.0 är att använda klassen Timer (flash.utils.Timer), som kan användas för att skicka händelser när ett intervall uppnås.
För att starta en timer skapar du först en instans av klassen Timer, där du anger hur ofta en timerhändelse ska genereras och hur många gånger detta ska ske innan den stoppas.
Med följande kodexempel skapas en Timer-instans som skickar en händelse varje sekund under 60 sekunder:
var oneMinuteTimer:Timer = new Timer(1000, 60);
Objektet Timer skickar objektet TimerEvent varje gång som det givna intervallet uppnås. Händelsetypen för ett TimerEvent-objekt är timer (definieras med konstanten TimerEvent.TIMER). Objektet TimerEvent innehåller samma egenskaper som standardobjektet Event.
Om Timer-instansen anges med ett fast antal intervaller så skickas även händelsen timerComplete (anges med konstanten TimerEvent.TIMER_COMPLETE) när det slutliga intervallet uppnås.
Här följer ett litet programexempel som visar hur klassen Timer fungerar:
package
{
import flash.display.Sprite;
import flash.events.TimerEvent;
import flash.utils.Timer;
public class ShortTimer extends Sprite
{
public function ShortTimer()
{
// creates a new five-second Timer
var minuteTimer:Timer = new Timer(1000, 5);
// designates listeners for the interval and completion events
minuteTimer.addEventListener(TimerEvent.TIMER, onTick);
minuteTimer.addEventListener(TimerEvent.TIMER_COMPLETE, onTimerComplete);
// starts the timer ticking
minuteTimer.start();
}
public function onTick(event:TimerEvent):void
{
// displays the tick count so far
// The target of this event is the Timer instance itself.
trace("tick " + event.target.currentCount);
}
public function onTimerComplete(event:TimerEvent):void
{
trace("Time's Up!");
}
}
}
När klassen ShortTimer skapas så skapas en Timer-instans som tickar fram en gång per sekund i fem sekunder. Därefter läggs två avlyssnare till i timern: en som känner av varje tickning och en som känner av händelsen timerComplete.
Därefter startas klockningen och från och med då körs metoden onTick() med intervaller om en sekund.
Metoden onTick() visar helt enkelt aktuellt tickningsantal. Efter fem sekunder körs metoden onTimerComplete() som talar om att tiden är slut.
När du kör detta exempel bör du se följande rader på konsolen eller i statusfönstret med en hastighet på en rad i sekunden:
tick 1
tick 2
tick 3
tick 4
tick 5
Time's Up!