![]() |
|
||||||||||
|
|||||
|
Регистрация: Apr 2008
Сообщений: 16
|
Такой вопрос, как правильно использовать setInterval в цикле, и в какое время производить очистку? Необходимо, чтобы в цикле выполнялась какая-то функция и задержка перед следующим шагом. Впрочем, если это покажут с помощью SetTimeout, никаких претензий, лишь бы было видно работу задержек)
|
|
|||||
|
|
|
|||||
|
Регистрация: Apr 2008
Сообщений: 16
|
Хотелось бы тоже так хитрить, ну или скажем этак:
private function Compl(evt:TimerEvent):void { timer.reset(); //что вобщем-то не обязательно if(i!=30) { //тут какая угодно функция i+=1; timer.start(); } } public function timeShift():void //вызов, допустим на клик { timer.addEventListener(TimerEvent.TIMER_COMPLETE, Compl); //какая угодно функция timer.start(); } Спасибо Последний раз редактировалось fisherman; 03.12.2008 в 15:22. |
|
|||||
|
Регистрация: Nov 2008
Сообщений: 65
|
Флеш плеер работает с одним thread'ом. Поэтому, если бы можно было остановить выполнение (например, с помощью delay), то вы бы остановили полностью флеш (включая прорисовку), а не только свой код (это можно было бы обойти используя синхронизацию, но она слишком усложняет модель, поэтому в скриптах практически не используется).
Флеш построен по модели событий, вот их и используйте. |
|
|||||
|
Регистрация: Apr 2008
Сообщений: 16
|
я уже использовал слушатель, но ориентировать подобный метод на циклы for и foreach не получается, вообще говоря, я подумываю о реализации через setInterval или setTimeout, но пока что моих навыков не хватает, что бы его вовремя ставить и вовремя чистить в цикле, поэтому я и прошу помощи в данном вопросе. Теперь о delay. Да, можно много размышлять на тему о том, как работает флэш, и как это непохоже на базовые языки программирования, но задержка выполнения конкретной функции это же не новость (собственно setInterval и setTimeout именно этим и занимаются), так почему бы их не использовать в решении таких проблем? Нет, может, конечно, для вас это и не кажется сложным, но пока примеров нужного мне кодя я не нашел.
|
|
|||||
|
>> но пока примеров нужного мне кодя я не нашел
и врядли найдешь, поскольку абсолютно чуждо это флешу реализовать то, что ты хочешь, не сложно, но реально это не имеет смысла, почему - уже объяснил ZlPredator |
|
|||||
|
Регистрация: Apr 2008
Сообщений: 16
|
Так, давайте-ка проясним еще раз чего я хочу, и что мне объясняют. Т.е. задержка функции в циклах for и foreach, это по вашему "абсолютно чуждо флэшу"? Проще говоря никто так не делает? А как тогда программы пишут, я не пойму? Или вы к допотопному delay прицепились, и не поняли, что от вас человек хотел?)
|
|
|||||
|
не поняли, значит..
еще раз: можно либо приостановить выполнение цикла, застопорив весь плеер при этом, либо запустить какие-то действия с задержкой - при чем здесь тогда цикл не очень ясно, хотя можно, канеш, сделать это и в цикле.. |
|
|||||
|
Регистрация: Apr 2008
Сообщений: 16
|
Если мы будем задерживать выполнение какой-то функции (используем setTimeout/setInterval) в каждом шаге цикла foreach, работа с интерфейсом во время работы цикла будет невозможной?
А если функция рисует какой-то граф. примитив, то программа нам не будет показывать прорисовку этих примитивов друг за другом с задержкой, а выдаст конечное изображение? Судя по документации, setTimeout/setInterval для функции не должна влиять на выполнение других функций, не зависимых от неё. Все остальные функции будут выполнятся параллельно с задержкой. Так почему же должны возникнуть проблемы с интерфейсом? Мы же не стопим все) |
![]() |
![]() |
Часовой пояс GMT +4, время: 07:14. |
|
|
« Предыдущая тема | Следующая тема » |
|
|