Форум Flasher.ru

Форум Flasher.ru (http://www.flasher.ru/forum/index.php)
-   ActionScript 3.0 (http://www.flasher.ru/forum/forumdisplay.php?f=83)
-   -   Пауза для таймера (http://www.flasher.ru/forum/showthread.php?t=178666)

podkolzzzin 26.04.2012 17:24

Пауза для таймера
 
Есть ли у стандартного таймера метод для паузы?
Что бы после запуска продолжал с того же места где и закончил или самому необходимо писать?

Yahen 26.04.2012 17:28

Start и Stop.
Собственно говоря, а что Вы хотите такое специфическое увидеть в методе Pause? Flash ведь однопоточный. Все функции запускаются последовательно одна за другой, и никакой параллельной работы нет. Поэтому сама идея "приостановить таймер" не имеет смысла.

podkolzzzin 26.04.2012 17:34

Имеет. Действие происходит каждые две секунды.Прошла одна секунда. Игрок нажимает на кнопку паузы и я вызываю стоп() после чего когда игрок нажимает плей я вызываю старт, но таймер начинает работать сначала и игрок будет ждать еще 2 секунды ((

bav 26.04.2012 17:44

Цитата:

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

var timer:Timer = new Timer(1000, 2);
// Или тоньше
var timer:Timer = new Timer(100, 20);


podkolzzzin 26.04.2012 17:52

Спасибо... Надеялся что есть чото готовое(( Ну ладно)

mikhailk 26.04.2012 18:35

Не надо останавливать таймер вообще

1. Определяетесь с дискретизацией взаимодействия с пользователем и ставите это значение в таймер. Например, 100мс.
2. Заводите метки времени stepStartPoint и stepPausePoint - время начала текущего шага процесса и время, когда была нажата кнопка паузы
3. Заводите флажок активности процесса, например isProcessing
4. Запускаете таймер, ставите в stepStartPoint стартовое время и isProcessing=true
5. В обработчике таймера проверяете isProcessing==true и разницу текущего времени и stepStartPoint требуемой частоте визуализации шага процесса (например, 2 сек), если не меньше - отрабатываете визуализацию и записываете текущее время в stepStartPoint
6. При нажатии паузы записываете в stepPausePoint текущее время и выставляете isProcessing=false
7. При нажатии резюма корректируете stepStartPoint с учетом текущего времени и stepPausePoint и выставляете isProcessing=true


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

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