Preferowanym sposobem odmierzania czasu w języku ActionScript 3.0 jest użycie klasy Timer (flash.utils.Timer), która umożliwia wywoływanie zdarzeń po upływie określonego czasu.
Aby uruchomić licznik czasu, należy utworzyć instancję klasy Timer, określając częstotliwość wywoływania zdarzeń oraz liczbę zdarzeń, jaka ma być wygenerowana przed zatrzymaniem licznika.
Poniższy przykładowy kod tworzy instancję klasy Timer, która wywołuje zdarzenie co sekundę, przez 60 sekund:
var oneMinuteTimer:Timer = new Timer(1000, 60);
Obiekt Timer wywołuje obiekt zdarzenia TimerEvent za każdym razem po upływie zadanego przedziału czasu. Typem zdarzenia skojarzonym z obiektem TimerEvent jest
timer
(typ zdefiniowany przez stałą
TimerEvent.TIMER
). Obiekt TimerEvent zawiera te same właściwości, co standardowy obiekt Event.
Jeśli dla instancji klasy Timer zostanie określona stała liczba okresów, to po odliczeniu ostatniego okresu wywołane zostanie zdarzenie
timerComplete
(zdefiniowane przez stałą
TimerEvent.TIMER_COMPLETE
).
Oto niewielka przykładowa aplikacja ilustrująca działanie klasy Timer:
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!");
}
}
}
Podczas tworzenia klasy ShortTimer tworzona jest instancja klasy Timer, która generuje zdarzenia raz na sekundę przez pięć sekund. Następnie do licznika czasu dodawane są dwa detektory: jeden z nich wykrywa każdy odmierzony okres, a drugi wykrywa zdarzenie
timerComplete
.
Teraz rozpoczyna się odmierzanie czasu i od tego momentu metoda
onTick()
jest wykonywana co sekundę.
Metoda
onTick()
po prostu wyświetla numer aktualnego okresu. Po upływie pięciu sekund wykonywana jest metoda
onTimerComplete()
informująca o upływie limitu czasu.
Po uruchomieniu tego przykładowego programu na konsoli lub w oknie śledzenia powinny pojawić się następujące wiersze, generowane z szybkością jednego wiersza na sekundę:
tick 1
tick 2
tick 3
tick 4
tick 5
Time's Up!