|
|
|||||
Регистрация: Oct 2011
Сообщений: 7
|
Пауза для таймера
Есть ли у стандартного таймера метод для паузы?
Что бы после запуска продолжал с того же места где и закончил или самому необходимо писать? |
|
|||||
Регистрация: Jan 2012
Сообщений: 35
|
Start и Stop.
Собственно говоря, а что Вы хотите такое специфическое увидеть в методе Pause? Flash ведь однопоточный. Все функции запускаются последовательно одна за другой, и никакой параллельной работы нет. Поэтому сама идея "приостановить таймер" не имеет смысла. |
|
|||||
Регистрация: Oct 2011
Сообщений: 7
|
Имеет. Действие происходит каждые две секунды.Прошла одна секунда. Игрок нажимает на кнопку паузы и я вызываю стоп() после чего когда игрок нажимает плей я вызываю старт, но таймер начинает работать сначала и игрок будет ждать еще 2 секунды ((
|
|
|||||
Цитата:
|
|
|||||
Регистрация: Oct 2011
Сообщений: 7
|
Спасибо... Надеялся что есть чото готовое(( Ну ладно)
|
|
|||||
Регистрация: Nov 2009
Адрес: СПб
Сообщений: 2,236
|
Не надо останавливать таймер вообще
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, время: 03:28. |
|
« Предыдущая тема | Следующая тема » |
|
|