Предпочтительный способ обработки функций в языке ActionScript 3.0 — использование класса Timer (flash.utils.Timer), с помощью которого можно отправлять события при достижении заданного интервала.
Для запуска таймера нужно сначала создать экземпляр класса Timer, который будет сообщать, как часто генерировать событие таймера и сколько раз это нужно делать.
Например, ниже показано, как создавать экземпляр Timer, который будет отправлять событие каждую секунду в течение 60 секунд:
var oneMinuteTimer:Timer = new Timer(1000, 60);
Объект Timer отправляет объект TimerEvent каждый раз при достижении заданного интервала. Тип события объекта TimerEvent —
timer
(определяется константой
TimerEvent.TIMER
). Объект TimerEvent содержит те же свойства, что и стандартный объект Event.
Если экземпляру Timer задано фиксированное число интервалов, он также отправит событие
timerComplete
(определяемое константой
TimerEvent.TIMER_COMPLETE
) при достижении завершающего интервала.
Вот образец небольшого приложения, в котором демонстрируется работа класса 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!");
}
}
}
При создании класса ShortTimer создается экземпляр Timer, который будет отсчитывать каждую секунду в течение пяти секунд. Затем к таймеру добавляются два прослушивателя, один из которых будет прослушивать секундные отметки, а второй — событие
timerComplete
.
Затем таймер начинает отсчет, и с этого момента метод
onTick()
выполняется с интервалом в одну секунду.
Метод
onTick()
просто выводит текущий счет секунд. По прошествии пяти секунд выполняется метод
onTimerComplete()
, сообщающий, что время вышло.
При выполнении этого примера у вас в консоли или окне трассировки должны отображаться следующие строки, по одной в секунду:
tick 1
tick 2
tick 3
tick 4
tick 5
Time's Up!