![]() |
|
||||||||||
|
|||||
|
Регистрация: Apr 2004
Адрес: Усть-Катав
Сообщений: 33
|
Здравствуйте!
В моей программе работает некий цикл, при определённом условии происходит его зацикливание. Результатом этого является останов выполнения программы при прохождении 256 циклов. И что самое неприятное программа натурально зависает, невозможно совершение никаких действий с размещёнными в клипе компонентами и самопальными кнопками. Исключение составляют текстовые поля.Что делать? Подскажите пожалуйста. ![]() |
|
|||||
|
Дело в том, что в Action Script наложено ограничение на уровень рекурсии - 255 повторов. Если уровень рекурсии превышает 255 уровней - происходит остановка скрпта. И только скрипта. Если так нужно обойти это ограничение попробуй динамически генерить новую функцию при пороге, например, 250 уровней и передавать ей управление
__________________
судью - на мыло, из игроков - вить веревки. |
|
|||||
|
Регистрация: Apr 2004
Адрес: Усть-Катав
Сообщений: 33
|
Нет, я не об этом.
Как сделать так чтобы после останова программы в результате этого действия, снова запустить её на выполнение. Просто я никак не могу остановить этот цикл. |
|
|||||
|
Регистрация: Apr 2003
Сообщений: 243
|
Надо написать программу так, чтобы останова не происходило - то есть, чтобы не было такой рекурсии. Переделайте алгоритм.
|
|
|||||
|
Регистрация: Apr 2004
Адрес: Усть-Катав
Сообщений: 33
|
Я попробую переделать алгоритм. Но тогда вопрос какими методами можно остановить выполнение цикла.
|
|
|||||
|
break
__________________
судью - на мыло, из игроков - вить веревки. |
|
|||||
|
Регистрация: Apr 2004
Адрес: Усть-Катав
Сообщений: 33
|
Ребята всё гораздо хуже
У меня примерно такой код. on(relase){ function raz() { i++; dva(); } function dva() { raz(); } } И поехало! Как остановить то? |
|
|||||
|
Регистрация: Nov 2001
Адрес: spb.ru
Сообщений: 177
|
Убери лишнюю функцию:
Если у тебя ключевой момент здесь i++, то не используй рекурсию, используй цикл (while или что там тебе удобнее).
|
|
|||||
|
Регистрация: Apr 2004
Адрес: Усть-Катав
Сообщений: 33
|
Конструкция должна остаться неизменной, так как в функции dva() так же есть блок кода который напрямую зависит от функции raz().
|
|
|||||
|
Вот тебе код. Размышляй, медитируй - и просветление придет
![]() ![]()
__________________
судью - на мыло, из игроков - вить веревки. |
![]() |
Часовой пояс GMT +4, время: 15:07. |
|
|
« Предыдущая тема | Следующая тема » |
| Опции темы | |
| Опции просмотра | |
|
|