![]() |
Задержка в цикле
Такой вопрос, как правильно использовать setInterval в цикле, и в какое время производить очистку? Необходимо, чтобы в цикле выполнялась какая-то функция и задержка перед следующим шагом. Впрочем, если это покажут с помощью SetTimeout, никаких претензий, лишь бы было видно работу задержек)
|
Код AS3:
|
Хотелось бы тоже так хитрить, ну или скажем этак:
Код AS3:
Спасибо |
Флеш плеер работает с одним thread'ом. Поэтому, если бы можно было остановить выполнение (например, с помощью delay), то вы бы остановили полностью флеш (включая прорисовку), а не только свой код (это можно было бы обойти используя синхронизацию, но она слишком усложняет модель, поэтому в скриптах практически не используется).
Флеш построен по модели событий, вот их и используйте. |
я уже использовал слушатель, но ориентировать подобный метод на циклы for и foreach не получается, вообще говоря, я подумываю о реализации через setInterval или setTimeout, но пока что моих навыков не хватает, что бы его вовремя ставить и вовремя чистить в цикле, поэтому я и прошу помощи в данном вопросе. Теперь о delay. Да, можно много размышлять на тему о том, как работает флэш, и как это непохоже на базовые языки программирования, но задержка выполнения конкретной функции это же не новость (собственно setInterval и setTimeout именно этим и занимаются), так почему бы их не использовать в решении таких проблем? Нет, может, конечно, для вас это и не кажется сложным, но пока примеров нужного мне кодя я не нашел.
|
>> но пока примеров нужного мне кодя я не нашел
и врядли найдешь, поскольку абсолютно чуждо это флешу реализовать то, что ты хочешь, не сложно, но реально это не имеет смысла, почему - уже объяснил ZlPredator Код AS3:
|
Так, давайте-ка проясним еще раз чего я хочу, и что мне объясняют. Т.е. задержка функции в циклах for и foreach, это по вашему "абсолютно чуждо флэшу"? Проще говоря никто так не делает? А как тогда программы пишут, я не пойму? Или вы к допотопному delay прицепились, и не поняли, что от вас человек хотел?)
|
"абсолютно чуждо флэшу" -Да; обновление экрана не произойдет, пока не выполнится последняя строка кода.
|
не поняли, значит..
еще раз: можно либо приостановить выполнение цикла, застопорив весь плеер при этом, либо запустить какие-то действия с задержкой - при чем здесь тогда цикл не очень ясно, хотя можно, канеш, сделать это и в цикле.. |
Если мы будем задерживать выполнение какой-то функции (используем setTimeout/setInterval) в каждом шаге цикла foreach, работа с интерфейсом во время работы цикла будет невозможной?
А если функция рисует какой-то граф. примитив, то программа нам не будет показывать прорисовку этих примитивов друг за другом с задержкой, а выдаст конечное изображение? Судя по документации, setTimeout/setInterval для функции не должна влиять на выполнение других функций, не зависимых от неё. Все остальные функции будут выполнятся параллельно с задержкой. Так почему же должны возникнуть проблемы с интерфейсом? Мы же не стопим все) |
| Часовой пояс GMT +4, время: 09:55. |
Copyright © 1999-2008 Flasher.ru. All rights reserved.
Работает на vBulletin®. Copyright ©2000 - 2026, Jelsoft Enterprises Ltd. Перевод: zCarot
Администрация сайта не несёт ответственности за любую предоставленную посетителями информацию. Подробнее см. Правила.