![]() |
Динамическое изменение interval в setInterval
В общем я все форумы облазил, про setInterval говорили много, но того, что мне надо, я так и не нашёл.
А надо мне следующее: я периодически выполняю функцию с помощью setInterval и хочу изменять параметр interval. Я пробовал динамически создавать эту функцию, а потом clearInterval, но что-то не получается. (Открою секрет, этой функцией я опускаю кубик в тетрисе и мне нужно резко увеличивать скорость, когда нажимают стрелку вниз, а также изменять скорость в зависимости от уровня.) Help will be much appreciated. If I ever finish programming this game, I promise to lay out its source code here at flasher.ru Thanks |
и что там не получается?
time=1000;
setInterval( function(){ trace(time) }, _root.time ); this.onMouseDown=function(){ time+=100; } |
Ага, верно, да не верно!
Трейсит-то он нормально, мол, всё окей, тайм увеличили, но ведь трейсит-то он он по-прежнему с той-же скоростью! - 1 раз в секунду, а мне нужно, чтобы динамически скорость можно было увеличивать или уменьшать, а не эту переменную менять.
|
и так не пашет?
id=setInterval( function(){ mc._x++; }, 1000 );
this.onMouseDown=function(){ clearInterval(id); setInterval( function(){ mc._x++; }, 10 ); } |
Так пашет, но эффективность?
Да, да, конечно, так пашет. Я тоже вчера на таком варианте остановился - отдельная функция для каждой скорости. Выходит мне таких нужно 10: 9 + 1- для падения. Я думал можно как-нибудь покороче.
Спасибо и на этом. До этого я не знал, что var id не обязательно объявлять перед id = setInterval(); |
id нужен чтоб запомнить индивидуальный номер процесса возвращаемый при вызове steInterval, хотя можно и по номерам если не требуется чего-то более сложного:
setInterval(function(){mc1._x++},500); setInterval(function(){mc2._x++},100); this.onMouseDown = function(){ clearInterval(1)} this.onMouseUp = function(){ clearInterval(2)} |
В компоненте FListBox используется точно такойже принцип.
Код:
class.clickHandler = function(itmNum) { |
| Часовой пояс GMT +4, время: 15:28. |
Copyright © 1999-2008 Flasher.ru. All rights reserved.
Работает на vBulletin®. Copyright ©2000 - 2026, Jelsoft Enterprises Ltd. Перевод: zCarot
Администрация сайта не несёт ответственности за любую предоставленную посетителями информацию. Подробнее см. Правила.