La forma preferida de gestionar funciones de tiempo en ActionScript 3.0 consiste en utilizar la clase Timer (flash.utils.Timer) para distribuir eventos cuando se alcanza un intervalo.
Para iniciar un temporizador, primero es necesario crear una instancia de la clase Timer e indicarle la frecuencia con la que debe generar un evento del temporizador y la cantidad de veces que debe hacerlo antes de detenerse.
Por ejemplo, el código siguiente crea una instancia de Timer que distribuye un evento cada segundo y se prolonga durante 60 segundos:
var oneMinuteTimer:Timer = new Timer(1000, 60);
El objeto Timer distribuye un objeto TimerEvent cada vez que se alcanza el intervalo especificado. El tipo de evento de un objeto TimerEvent es
timer
(definido por la constante
TimerEvent.TIMER
). Un objeto TimerEvent contiene las mismas propiedades que un objeto Event estándar.
Si la instancia de Timer se establece en un número fijo de intervalos, también distribuirá un evento
timerComplete
(definido por la constante
TimerEvent.TIMER_COMPLETE
) cuando alcance el intervalo final.
A continuación se muestra una aplicación de ejemplo donde se utiliza la clase 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!");
}
}
}
Al crear la clase ShortTimer, se crea una instancia de Timer que hará tictac una vez por segundo durante cinco segundos. Posteriormente agrega dos detectores al temporizador: uno que detecta todos los tictac y otro que detecta el evento
timerComplete
.
A continuación, inicia el tictac del temporizador y, a partir de ese punto, el método
onTick()
se ejecuta en intervalos de un segundo.
El método
onTick()
simplemente muestra el recuento de tictac actual. Después de cinco segundos, se ejecuta el método
onTimerComplete()
, que indica que se ha acabado el tiempo.
Cuando se ejecuta este ejemplo, aparecen las siguientes líneas en la consola o ventana de traza a una velocidad de una línea por segundo:
tick 1
tick 2
tick 3
tick 4
tick 5
Time's Up!