La modalità preferenziale di gestione delle funzioni temporali in ActionScript 3.0 è mediante la classe Timer (flash.utils.Timer), che consente di inviare eventi al trascorrere di intervalli di tempo specificati.
Per avviare un timer, è necessario creare in primo luogo un'istanza della classe Timer, quindi impostare la frequenza di creazione di un evento timer e la quantità di eventi da generare prima di arrestarsi.
Il codice seguente consente, ad esempio, di creare un'istanza Timer che invia un evento ogni secondo e continua per 60 secondi:
var oneMinuteTimer:Timer = new Timer(1000, 60);
L'oggetto Timer invia un oggetto TimerEvent ogni volta che viene raggiunto l'intervallo di tempo specificato. Un tipo di evento dell'oggetto TimerEvent è
timer
(definito dalla costante
TimerEvent.TIMER
). Un oggetto TimerEvent contiene le stesse proprietà dell'oggetto standard Event.
Se l'istanza Timer viene impostata per un determinato numero di intervalli, essa invierà anche un evento
timerComplete
(definito dalla costante
TimerEvent.TIMER_COMPLETE
) quando viene raggiunto l'intervallo finale.
Di seguito è riportata una breve applicazione di esempio che illustra il funzionamento della classe 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!");
}
}
}
Quando viene creata la classe ShortTimer, viene creata anche un'istanza Timer che esegue un controllo una volta al secondo per cinque secondi. Quindi vengono aggiunti due listener al timer: uno che intercetta ogni conteggio di controllo e l'altro che resta in attesa dell'evento
timerComplete
.
Viene quindi avviato il conteggio del timer e, da quel momento in poi, il metodo
onTick()
viene eseguito a intervalli di un secondo.
Il metodo
onTick()
visualizza semplicemente il conteggio temporale corrente. Dopo cinque secondi, viene eseguito il metodo
onTimerComplete()
, che avverte che il tempo è scaduto.
Nell'eseguire questo codice di esempio, sulla console o sulla finestra di traccia dovrebbero apparire le seguenti righe alla velocità di una riga al secondo:
tick 1
tick 2
tick 3
tick 4
tick 5
Time's Up!