Форум Flasher.ru

Форум Flasher.ru (http://www.flasher.ru/forum/index.php)
-   ActionScript 3.0 (http://www.flasher.ru/forum/forumdisplay.php?f=83)
-   -   небольшой вопрос по flash.utils.Timer (http://www.flasher.ru/forum/showthread.php?t=212632)

neonoviiwolf 29.03.2016 14:30

небольшой вопрос по flash.utils.Timer
 
Доброго!

В одном классе нужен Timer при том используется дважды с разным временем, в зависимости от ситуации, вопрос, можно ли обойтись одним, меняя ему время срабатывания, но чёт не увидел такой возможности.
Код AS3:

timer:Timer = new Timer(1000); //хочу изменять время срабатывания

Код AS3:

//если напишу так
timer:Timer = new Timer(1000);
timer.start();
//потом через какое-то время мне нужно поменять "1000" на "500"
timer.stop()
timer = new Timer (500);
timer.strat();
//то таймер срабатывает опять же через 1000


undefined 29.03.2016 14:49

проверь, что отписываешься от всех ивентов старого таймера
Цитата:

timer.strat();
надеюсь это опечатка?

amesqit 29.03.2016 14:56

Не надо создавать новый экземпляр таймера, надо изменить задержку Timer#delay

caseyryan 29.03.2016 18:57

Цитата:

то таймер срабатывает опять же через 1000
Естественно, а чего ты ждал? Ты же создал новый таймер там, а тот с 1000 никуда не делся и продолжает работать.

undefined 29.03.2016 20:59

Так он же его стопорит

neonoviiwolf 29.03.2016 22:12

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

amesqit 30.03.2016 11:29

Цитата:

Сообщение от neonoviiwolf (Сообщение 1193063)
caseyryan я знаю что создал новый таймер, вопрос в том, как правильно такое реализовать, чтобы не создавать новый таймер, а изменить работу текущего

чтобы не создавать новый таймер надо перейти по ссылке из моего коментария выше и прочитать про свойство delay таймера или написать, что это почему-то не подходит :)

neonoviiwolf 30.03.2016 13:59

Цитата:

Сообщение от amesqit (Сообщение 1193068)
чтобы не создавать новый таймер надо перейти по ссылке из моего коментария выше и прочитать про свойство delay таймера или написать, что это почему-то не подходит :)

delay - это параметр который определяет через сколько срабатывает таймер или через сколько запустится таймер?

amesqit 30.03.2016 15:00

Хорошо, если вам лень переходить по ссылке и читать описание класса Timer и свойства delay в частности то вот вам цитаты из документации
Цитата:

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

Можно так же посмотреть описание конструктора
Цитата:

Сообщение от Документация Adobe
Конструктор
public function Timer(delay:Number, repeatCount:int = 0)
...
Создает новый объект Timer с заданными состояниями delay и repeatCount.

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

Параметры
delay:Number — Задержка в миллисекундах между событиями таймера. Не рекомендуется задавать свойству delay значение меньше 20 миллисекунд. Частота объекта Timer ограничена 60 кадрами в секунду, то есть задержка меньше 16,6 миллисекунд вызывает проблемы во время выполнения.

repeatCount:int (default = 0) — Определяет количество повторений. Если значение равно 0, таймер повторяется бесконечно, максимально 24,86 дня (int.MAX_VALUE + 1). Если не равно нулю, таймер запускается указанное количество раз, а затем останавливается.

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

neonoviiwolf 30.03.2016 15:22

amesqit спасибо, видимо я дважды не правильно понял написанное


Часовой пояс GMT +4, время: 05:00.

Copyright © 1999-2008 Flasher.ru. All rights reserved.
Работает на vBulletin®. Copyright ©2000 - 2024, Jelsoft Enterprises Ltd. Перевод: zCarot
Администрация сайта не несёт ответственности за любую предоставленную посетителями информацию. Подробнее см. Правила.