![]() |
Распределение во времени долговыполняющегося цикла
Здравствуйте! Помогите, пожалуйста.
Есть цикл: Код AS3:
Кто решал подобные задачи, подскажите, как распределить этот цикл во времени, что бы он смог выполниться полностью. |
Это не сложно - как вариант - цикл должен находиться в обработчике ENTER_FRAME и в этом цикле отслеживать нужно текущее время, потраченное на выполнение этого цикла. Если оно больше определенного значения, то обрывать цикл, но запоминать текущую позицию. Затем при переходе на новый кадр возобновлять цикл с нужной позиции. По завершении - удалить ENTER_FRAMEю
|
Волгоградец, Вы можете пояснить это кодом?
Может кто-то знает, как прерывать и возобновлять выполнение цикла по событию ошибки превышения времени исполнения скрипта (Ошибка 1502)? Вариант с событием ENTER_FRAME почему-то кажется мне "стрёмным"... |
Как то так
Код AS3:
|
Спасибо за рабочий пример!
Волгоградец, а у Вас нет идеи как реализовать прерывание по событию Ошибки 1502. Просто я заметил, перефразируя слова Того самого Мюнхгаузена: - Дело в том, что во Флеше и на земле время летит не одинаково. |
try catch
|
Волгоградец, ещё раз спасибо! Это решило все проблемы, а именно:
Код AS3:
|
Столкнулся с похожей проблемой, есть цикл который не успевает выполнить необходимые вычисления и вываливается ошибка сценария 1502. Я так понимаю, что вариант с обработчиком ENTER_FRAME относится к Flash CS в котором есть timeline, есть ли подобный трюк для Flash/Flex Builder?
|
timeline это всего лишь панелька во Flash.
ENTER_FRAME будет работать везде. |
Да, что-то я погорячился. А если мне необходимо вызвать предложенный метод с циклом из другого метода (т.е. есть код и предположим в середине кода вызывается функция с циклом, после чего предполагается использовать обработанные данные в следующем за вызванной функцией коде) будет ли работать данная конструкция? По идее должен получиться некий асинхронный вызов, но код за вызванной функцией не должен исполняться пока функцией не будут возвращены данные. Как быть?
|
| Часовой пояс GMT +4, время: 18:02. |
Copyright © 1999-2008 Flasher.ru. All rights reserved.
Работает на vBulletin®. Copyright ©2000 - 2026, Jelsoft Enterprises Ltd. Перевод: zCarot
Администрация сайта не несёт ответственности за любую предоставленную посетителями информацию. Подробнее см. Правила.