Форум Flasher.ru
Ближайшие курсы в Школе RealTime
Список интенсивных курсов: [см.]  
  
Специальные предложения: [см.]  
  
 
Блоги Правила Справка Пользователи Календарь Сообщения за день
 

Вернуться   Форум Flasher.ru > Flash > ActionScript 1.0/2.0

Версия для печати  Отправить по электронной почте    « Предыдущая тема | Следующая тема »  
Опции темы Опции просмотра
 
Создать новую тему Ответ
Старый 02.08.2010, 05:42
Contemplator вне форума Посмотреть профиль Отправить личное сообщение для Contemplator Найти все сообщения от Contemplator
  № 1  
Ответить с цитированием
Contemplator
 
Аватар для Contemplator

Регистрация: Nov 2009
Сообщений: 425
Question перезапуск setInterval

Приветствую!
Не ругаемся и не пинаем - в поиске порылся - нужного не нашёл =(

Вот с чем столкнулся: необходимо перезапускать setInterval при определённых условиях... своеобразный таймер обратного отсчёта, который срабатывает если за время интервала не произошло никаких изменений и перезапускается (начинает отсчёт с 0) если изменения произошли...
Переменная, которая является идентификатором необходимости перезапуска таймера - меняется (или не меняется) в onEnterFrame...
Как оптимальней реализовать подобного рода таймер?

Старый 02.08.2010, 09:53
silin вне форума Посмотреть профиль Посетить домашнюю страницу silin Найти все сообщения от silin
  № 2  
Ответить с цитированием
silin
 
Аватар для silin

блогер
Регистрация: Mar 2003
Адрес: Моск. обл.
Сообщений: 5,269
Записей в блоге: 6
setInterval возвращает идентифик4атор, по которому его можно найти и убить
пример: если в течении 2 с кликнуть, то setInterval не сработает
Код AS1/AS2:
var timerID = setInterval(timerAction, 2000);
function timerAction():Void {
	trace("timerAction");
 
}
function onMouseDown():Void {
	clearInterval(timerID);
}

Старый 02.08.2010, 11:08
Contemplator вне форума Посмотреть профиль Отправить личное сообщение для Contemplator Найти все сообщения от Contemplator
  № 3  
Ответить с цитированием
Contemplator
 
Аватар для Contemplator

Регистрация: Nov 2009
Сообщений: 425
Цитата:
Сообщение от silin Посмотреть сообщение
setInterval возвращает идентифик4атор, по которому его можно найти и убить
пример: если в течении 2 с кликнуть, то setInterval не сработает
Код AS1/AS2:
var timerID = setInterval(timerAction, 2000);
function timerAction():Void {
	trace("timerAction");
 
}
function onMouseDown():Void {
	clearInterval(timerID);
}
Про то как убить-то я знал в принципе - не знал как более корректно записать и как сделать перезапуск после "убийства" =)) ... Но спасибо за подсказку =)
Теперь такой вопрос: на сколько корректна данная запись (работать-то она работает, вопрос именно в корректности):

Код AS1/AS2:
m = 0;
 
timerAction = function():Void {
	m++;
	trace("timerAction " + m);
}
var timerID = setInterval(timerAction, 5000);
 
onMouseDown = function():Void {
	clearInterval(timerID);
	timerID = setInterval(timerAction, 5000);
}

Старый 02.08.2010, 11:53
silin вне форума Посмотреть профиль Посетить домашнюю страницу silin Найти все сообщения от silin
  № 4  
Ответить с цитированием
silin
 
Аватар для silin

блогер
Регистрация: Mar 2003
Адрес: Моск. обл.
Сообщений: 5,269
Записей в блоге: 6
имо все верно: текущий очищаем, ID нового запоминаем

Старый 02.08.2010, 11:56
Contemplator вне форума Посмотреть профиль Отправить личное сообщение для Contemplator Найти все сообщения от Contemplator
  № 5  
Ответить с цитированием
Contemplator
 
Аватар для Contemplator

Регистрация: Nov 2009
Сообщений: 425
Цитата:
Сообщение от silin Посмотреть сообщение
имо все верно: текущий очищаем, ID нового запоминаем
спасибо за помощь

Старый 02.08.2010, 11:56
silin вне форума Посмотреть профиль Посетить домашнюю страницу silin Найти все сообщения от silin
  № 6  
Ответить с цитированием
silin
 
Аватар для silin

блогер
Регистрация: Mar 2003
Адрес: Моск. обл.
Сообщений: 5,269
Записей в блоге: 6
очищать интервал перед запуском вообще нормальная практика, clearInterval несуществующего никакой ошибки не вызывает, но зато гарантия от запуска дубля

Создать новую тему Ответ Часовой пояс GMT +4, время: 00:13.
Быстрый переход
  « Предыдущая тема | Следующая тема »  

Ваши права в разделе
Вы не можете создавать новые темы
Вы не можете отвечать в темах
Вы не можете прикреплять вложения
Вы не можете редактировать свои сообщения

BB коды Вкл.
Смайлы Вкл.
[IMG] код Вкл.
HTML код Выкл.


 


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


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