Просмотр полной версии : как изменить интервал setInterval не очищая его?
Суть:
Есть кнопки управления скоростью воспроизведения совершенных ранее действий пользователя. Используя setInterval проигрываются все записи в истории.
Вопрос:
Как динамически изменить задержки (не оч хорошее слово :) ) уже выполняемого setInterval?
Или как узнать какая функция выполняется в текущем интервале?
Тогда можно его очистить и задать выполнение с новым промежутком.
Сделай класс типо такого..
class Interval
{
private var _id:String;
private var params:Array;
private var intervalID:Number;
public function interval()
{
params = [];
_id = '';
}
public function set id(s:String):Void
{
_id = s;
}
public function get id():String
{
return _id;
}
public function addInterval (f:Function, interval:Number):Void
{
clearInterval(intervalID);
params = arguments;
setInterval.apply(null, arguments);
}
public function changeInterval(interval:Number):Void
{
params[1] = interval;
addInterval.apply(this, params);
}
public function stopInterval():Void
{
clearInterval(intervalID);
}
}
Добавлено через 47 секунд
Можно еше контроллер какой небудь для интервалов делать чтобы повеливать сразу всеми.
qazwsx, спасибо, но в моем случае эт не совсем то что нужно.
У меня есть уже куча чужого кода, в котором нужно выправить баги.
Собственно и интересуюсь как это сделать не меняя всей логики или не переписывая кучу кода.
Понятно что если другого выхода нет то придется это сделать )
Работает на vBulletin ® версия 3.7.3. Copyright ©2000-2026, Jelsoft Enterprises Ltd. Перевод: zCarot
Copyright © 1999-2008 Flasher.ru. All rights reserved.