Главная / Action Script 3
Пакетflash.utils
Классpublic class Timer
НаследованиеTimer Inheritance EventDispatcher Inheritance Object

Язык версии : ActionScript 3.0
Версии среды выполнения:  1.0 9

Класс Timer является интерфейсом для таймеров проигрывателя Flash Player. Чтобы выполнить код через определенное время, можно создать объект Timer. Для·запуска таймера служит метод start(). Чтобы настроить код на выполнение через интервал таймера, добавьте прослушиватель для события timer.

Объекты Timer можно создавать для однократного запуска или повторяющегося выполнения кода по расписанию. В зависимости от частоты кадров в SWF-файле или среды проигрывателя Flash Player (доступная память и другие факторы), проигрыватель может запускать события с небольшим сдвигом. Например, если SWF-файл настроен на проигрывание с частотой 10 кадров в секунду, что означает 100-миллисекундные интервалы, а таймер настроен на запуск события через 80 миллисекунд, проигрыватель Flash Player будет запускать событие примерно через 100-миллисекундный интервал. Сценарии, требующие много памяти, также могут приводить к сдвигу времени отправки событий.

Посмотреть примеры

См. также

Управление временными интервалами
Класс Timer


Общедоступные свойства
 СвойствоОпределено
 Inheritedconstructor : Object
Ссылка на объект класса или функцию конструктора для данного экземпляра объекта.
Object
  currentCount : int
[только для чтения] Общее число срабатываний таймера с момента его запуска с нуля.
Timer
  delay : Number
Задержка в миллисекундах между событиями таймера.
Timer
 Inheritedprototype : Object
[статические] Ссылка на модель объекта класса или функции.
Object
  repeatCount : int
Общее число запусков, на которое настроен таймер.
Timer
  running : Boolean
[только для чтения] Текущее состояние таймера: если таймер выполняется, то true, в противном случае false.
Timer
Общедоступные методы
 МетодОпределено
  
Timer(delay:Number, repeatCount:int = 0)
Создает новый объект Timer с заданной задержкой и состояниями repeatCount.
Timer
 Inherited
addEventListener(type:String, listener:Function, useCapture:Boolean = false, priority:int = 0, useWeakReference:Boolean = false):void
Регистрирует объект прослушивателя события в объекте EventDispatcher, в результате чего прослушиватель будет получать уведомления о событиях.
EventDispatcher
 Inherited
Передает событие в поток событий.
EventDispatcher
 Inherited
Проверяет наличие у объекта EventDispatcher прослушивателей событий, которые зарегистрированы для получения уведомлений о событиях определенного типа.
EventDispatcher
 Inherited
Показывает, определено ли заданное свойство для объекта.
Object
 Inherited
Показывает, есть ли экземпляр класса Object в цепи прототипов объекта, заданного в качестве параметра.
Object
 Inherited
Показывает наличие заданного свойства и его перечисляемость.
Object
 Inherited
removeEventListener(type:String, listener:Function, useCapture:Boolean = false):void
Удаляет прослушиватель из объекта EventDispatcher.
EventDispatcher
  
Останавливает таймер, если он выполняется, и заново присваивает свойству currentCount значение 0, аналогично кнопке сброса на секундомере.
Timer
 Inherited
Задает доступность динамического свойства для операций цикла.
Object
  
Запускает таймер, если он еще не выполняется.
Timer
  
Останавливает таймер.
Timer
 Inherited
Возвращает строковое представление заданного объекта.
Object
 Inherited
Возвращает элементарное значение заданного объекта.
Object
 Inherited
Проверяет, зарегистрирован ли прослушиватель событий в объекте EventDispatcher или в любом из его предков для получения уведомлений о событиях определенного типа.
EventDispatcher
События
 Событие Сводка Определено
 Inherited[многоадресное событие] Отправляется, когда проигрыватель Flash Player перемещается в фокус операционной системы и становится активным.EventDispatcher
 Inherited[многоадресное событие] Отправляется, когда проигрыватель Flash Player покидает фокус операционной системы и становится неактивным.EventDispatcher
  Отправляется каждый раз, когда объект Timer достигает интервала, указанного в свойстве Timer.delay.Timer
  Отправляется каждый раз, когда выполняется количество запросов, заданное свойством Timer.repeatCount.Timer
Сведения о свойстве
currentCountсвойство
currentCount:int  [только для чтения]

Язык версии : ActionScript 3.0
Версии среды выполнения:  1.0 9

Общее число срабатываний таймера с момента его запуска с нуля. Если таймер сбрасывается, учитываются только срабатывания после сброса.



Реализация
    public function get currentCount():int
delayсвойство 
delay:Number  [чтение и запись]

Язык версии : ActionScript 3.0
Версии среды выполнения:  1.0 9

Задержка в миллисекундах между событиями таймера. Если установить интервал задержки во время работы таймера, таймер будет перезапущен на текущей итерации repeatCount.



Реализация
    public function get delay():Number
    public function set delay(value:Number):void

Выдает
Error — Вызывает исключение, если указанная задержка является отрицательным числом или не является конечным числом.
repeatCountсвойство 
repeatCount:int  [чтение и запись]

Язык версии : ActionScript 3.0
Версии среды выполнения:  1.0 9

Общее число запусков, на которое настроен таймер. Если количество повторений содержит значение 0, таймер продолжает работу бесконечно, либо до вызова метода stop(), либо до останова программы. Если количество повторений не равно нулю, таймер запускается указанное количество раз. Если значение количества повторений repeatCount совпадает со значением текущей итерации currentCount или меньше его, таймер останавливается и не запускается снова.



Реализация
    public function get repeatCount():int
    public function set repeatCount(value:int):void
runningсвойство 
running:Boolean  [только для чтения]

Язык версии : ActionScript 3.0
Версии среды выполнения:  1.0 9

Текущее состояние таймера: если таймер выполняется, то true, в противном случае false.



Реализация
    public function get running():Boolean
Сведения о конструкторе
Timer()Конструктор
public function Timer(delay:Number, repeatCount:int = 0)

Язык версии : ActionScript 3.0
Версии среды выполнения:  1.0 9

Создает объект Timer с заданной задержкой delay и количеством повторений repeatCount.

Таймер не запускается автоматически, для его запуска необходимо вызвать метод start().

Параметры
delay:Number — Задержка в миллисекундах между событиями таймера.
 
repeatCount:int (default = 0) — Определяет количество повторений. Если ноль, таймер повторяет действия бесконечно. Если не равно нулю, таймер запускается указанное количество раз, а затем останавливается.

Выдает
Error — если указанная задержка является отрицательным числом или не является конечным числом

Пример

В следующем примере пользователю дается 90 секунд на ввод ответа в текстовое поле. Кроме того, каждые 30 секунд сообщение состояния оповещает пользователя о количестве оставшихся секунд.

Создается объект Timer, который запускается через 30 секунд (установлена задержка в 30000 миллисекунд) и повторяется три раза, всего — 90 секунд. время.

Для таймера myTimer добавляется два прослушивателя событий. Первый срабатывает по событию TimerEvent.TIMER, которое происходит при каждом запуске таймера. Метод timerHandler() изменяет текст в поле statusTextField, выводя оставшееся количество секунд.

Примечание. Класс Timer отслеживает количество раз, которое он должен запуститься (repeats), увеличивая число в свойстве currentCount.)

При последнем вызове таймера отправляется событие TimerEvent.TIMER_COMPLETE и вызывается метод completeHandler(). Метод completeHandler() изменяет тип текстового поля inputTextField с INPUT на DYNAMIC. Это означает, что пользователь больше не может вводить или изменять текст.

package {
    import flash.display.Sprite;
    import flash.text.TextField;
    import flash.text.TextFieldType;
    import flash.text.TextFieldAutoSize;
    import flash.utils.Timer;
    import flash.events.TimerEvent;
    import flash.events.Event;

    public class Timer_constructorExample extends Sprite {
            private var statusTextField:TextField = new TextField();        
            private var inputTextField:TextField = new TextField();
            private var delay:uint = 30000;
            private var repeat:uint = 3;
            private var myTimer:Timer = new Timer(delay, repeat);
            
        public function Timer_constructorExample() {
            inputTextField.x = 10;
            inputTextField.y = 10;
            inputTextField.border = true;
            inputTextField.background = true;
            inputTextField.height = 200;
            inputTextField.width = 200;
            inputTextField.multiline = true;
            inputTextField.wordWrap = true;
            inputTextField.type = TextFieldType.INPUT;

            statusTextField.x = 10;
            statusTextField.y = 220;
            statusTextField.background = true;
            statusTextField.autoSize = TextFieldAutoSize.LEFT;   

            myTimer.start(); 
            statusTextField.text = "You have " + ((delay * repeat) / 1000) 
                                 + " seconds to write your response.";

            myTimer.addEventListener(TimerEvent.TIMER, timerHandler);
            myTimer.addEventListener(TimerEvent.TIMER_COMPLETE, completeHandler);

            addChild(inputTextField);
            addChild(statusTextField);
        }

        private function timerHandler(e:TimerEvent):void{
            repeat--;
            statusTextField.text = ((delay * repeat) / 1000) + " seconds left.";
        }

        private function completeHandler(e:TimerEvent):void {
            statusTextField.text = "Times Up.";
            inputTextField.type = TextFieldType.DYNAMIC;    
        }
    }
}
Сведения о методе
reset()метод
public function reset():void

Язык версии : ActionScript 3.0
Версии среды выполнения:  1.0 9

Останавливает таймер, если он выполняется, и заново присваивает свойству currentCount значение 0, аналогично кнопке сброса на секундомере. Затем, при вызове метода start() экземпляр выполняется количество раз, определяемое значением repeatCount.

См. также

start()метод 
public function start():void

Язык версии : ActionScript 3.0
Версии среды выполнения:  1.0 9

Запускает таймер, если он еще не выполняется.

stop()метод 
public function stop():void

Язык версии : ActionScript 3.0
Версии среды выполнения:  1.0 9

Останавливает таймер. Когда метод start() вызывается после метода stop(), экземпляр таймера выполняется оставшееся количество раз, определяемое свойством repeatCount.

См. также

Сведения о событии
timer Событие
Тип объекта события: flash.events.TimerEvent
свойство TimerEvent.type = flash.events.TimerEvent.TIMER

Язык версии : ActionScript 3.0
Версии среды выполнения:  1.0 9

Отправляется каждый раз, когда объект Timer достигает интервала, указанного в свойстве Timer.delay.

Задает значение свойства type для объекта события timer.

Данное событие имеет следующие свойства.

СвойствоЗначение
bubblesfalse
cancelablefalse; нет поведения по умолчанию для отмены.
currentTargetОбъект, активно обрабатывающий объект Event с помощью прослушивателя событий.
targetОбъект Timer, достигший заданного интервала.
timerComplete Событие  
Тип объекта события: flash.events.TimerEvent
свойство TimerEvent.type = flash.events.TimerEvent.TIMER_COMPLETE

Язык версии : ActionScript 3.0
Версии среды выполнения:  1.0 9

Отправляется каждый раз, когда выполняется количество запросов, заданное свойством Timer.repeatCount.

Задает значение свойства type для объекта события timerComplete.

Данное событие имеет следующие свойства.

СвойствоЗначение
bubblesfalse
cancelablefalse; нет поведения по умолчанию для отмены.
currentTargetОбъект, активно обрабатывающий объект Event с помощью прослушивателя событий.
targetОбъект Timer, выполнивший запросы.
Примеры Как пользоваться примерами
TimerExample.as

В следующем примере используется класс TimerExample, чтобы продемонстрировать настройку метода timerHandler() на прослушивание для отправки нового события TimerEvent. Таймер запускается при вызове метода start() и, начиная с этого момента, начинают отправляться события.
package {
    import flash.utils.Timer;
    import flash.events.TimerEvent;
    import flash.display.Sprite;

    public class TimerExample extends Sprite {

        public function TimerExample() {
            var myTimer:Timer = new Timer(1000, 2);
            myTimer.addEventListener("timer", timerHandler);
            myTimer.start();
        }

        public function timerHandler(event:TimerEvent):void {
            trace("timerHandler: " + event);
        }
    }
}