![]() |
как остановить setTimeout?
Добрый вечер!
такая проблема: на сцене есть несколько картинок, через определенное время (с помощью setTimeout) подгружаются другие и заменяют эти.. дело в том, что если во время выполнения setTimeout (а он выполняется практически всё время в цикле) перейти на другой кадр, setTimeout продолжает выполняться :wacko: пробовал удалять саму функцию -- не помогло, clearTimeout тоже кажется не помогает, да и как к этому timeout'у обратиться, если он вызывается много раз?! Надеюсь я понятно объяснил (: |
тогда остановить цикл нужно
|
У вас несколько timeout'ов, значит очищать нужно все (когда вы в цикле присваиваете id = setTimeut(...), у вас просто некой переменной возвращается очередной номер, а процесс запусается сам по себе, и если так несколько раз, то по этому номеру вы сможете очистить только последний вызванный).
См. http://www.flasher.ru/forum/showthread.php?t=133536, насколько я понимаю, к setTimeout все сказанное также относится. Т.е. попробуйте именовать timeout'ы индивидуально, то есть присваивать номера каждый раз новой номерной переменной, а потом по этим переменным их очищайте. |
mooncar, Если здесь http://www.flasher.ru/forum/showthread.php?t=133536, setTimeout использовать вместо setInterval то бесконечного выполнения не будет
|
Вложений: 1
Автор, вот что я имею ввиду. Пример:
Код AS1/AS2:
То есть рекомендую организовать некое хранилище, наподобие объекта indexOfTimeouts в примере, куда будете складывать номера всех вызванных таймаутов, а к обработчику события перехода на другой кадр (не знаю, что там у вас, нажатие кнопки или что, это неважно) добавить вызов цикла очистки всех таймаутов по номерам, как это сделано в конце кода. PS. veles2008, разобрались? Да, иногда рациональнее использовать setTimeout, если нужно выполнить что-то только раз. Хотя если делать очистку правильно, то и интервалы все должны очищаться. |
mooncar
спасибо! то что нужно |
| Часовой пояс GMT +4, время: 09:14. |
Copyright © 1999-2008 Flasher.ru. All rights reserved.
Работает на vBulletin®. Copyright ©2000 - 2026, Jelsoft Enterprises Ltd. Перевод: zCarot
Администрация сайта не несёт ответственности за любую предоставленную посетителями информацию. Подробнее см. Правила.