![]() |
|
||||||||||
|
|||||||
|
|
« Предыдущая тема | Следующая тема » |
| Опции темы | Опции просмотра |
|
![]() |
|
|||||
|
Регистрация: Oct 2002
Адрес: Минск,Беларусь
Сообщений: 107
|
Уважаемые гуру
Существует ли способ, при помощи которого можно было бы приодолеть временное ограничение на исполнение кода. Я тут скрипт написал, решающий задачу эйлера об обходе шахматной доски конем. А он слишком долго выполняется. Дополнительная сложность - алгоритм рекурсивный, так что разбросать код по кадрам не получится.Что делать? Исходник в аттаче. |
|
|||||
|
элементарно ватсон, нужно использовать не for, а onClipEvent(enterFrame){}; у него нет лимита на выполнение
там пиши if и изминения, можно даже ввести маленькие циклы, но не такие как у тебя ![]()
__________________
I'm only happy when it rains. Waka Laka |
|
|||||
|
Регистрация: Oct 2002
Адрес: Минск,Беларусь
Сообщений: 107
|
Ну вы меня вообще за идиота держите. Как можно организовать рекурсивный алгоритм с onClipEvent? Бредовость этой идеи не имеет границ. Настоящие спецы - скажите, как победить 15-секундное ограничение на выполнение кода в одном кадре?
p.s. Кстати, уважаемый Usnul, код желательно централизовать, поэтому про onClipEvent забудьте - умные дяди для вас новую модель событий придумали. ![]() |
|
|||||
|
Регистрация: Oct 2002
Адрес: Минск,Беларусь
Сообщений: 107
|
А вот что про это дело пишет Macromedia:
Issue While viewing a Flash movie in any Flash Player environment (browser, standalone, or projector), an error message appears indicating that a script is causing the Player to run slowly. Additionally, the message box gives the viewer the option to abort the script, as can be seen in Example 1. Reason The Flash Player itself provides this option to abort the script. The Flash Player will do this when it plays a movie which contains a one-frame ActionScript loop which can repeat itself indefinitely or for too long. A movie with such a loop can tax the resources of the computer system playing it. Giving viewers the option to end the script helps the Flash Player prevent an SWF file from freezing the viewer's browser or system. Solution To avoid creating a movie that triggers this error message when it is played in the Flash Player, create a loop that goes through frames. You can do this by evaluating a variable in an if statement and, if the variable conditionalizes as true, then have the movie break the loop by going to the next frame. If the variable does not conditionalize as true, then have the movie loop back to the first frame (usually two to three frames back) of the movie. |
|
|||||
|
лимит не побить, и я пытался с тобой как с человеком
если тебя не устраивают копромисы пиши свой флэш
__________________
I'm only happy when it rains. Waka Laka |
|
|||||
|
Регистрация: Oct 2002
Адрес: Минск,Беларусь
Сообщений: 107
|
Просто, прежде чем давать советы, нужно убедиться, что они верны
|
|
|||||
|
короче так, если тебе все же охото чтобы "все работало" то делай без for а если нет, то садись за програминг
![]()
__________________
I'm only happy when it rains. Waka Laka |
|
|||||
|
Регистрация: Oct 2002
Адрес: Минск,Беларусь
Сообщений: 107
|
Без циклов - элементарно. А вот без рекурсии - никак. А ведь время ограничено и на выполнение функции. Кстати, я этот же код загнал в HTML как JavaScript - так там то же ограничение. В общем, не решить задачу Эйлера на Actionscript
|
|
|||||
|
Знаешь, мне жуууутко неохото разбераться, но по моему у тебя там есть несколько простейших ошибок, то есть строчки не там стоят некоторые, посмотри по внимательнее
__________________
I'm only happy when it rains. Waka Laka |
|
|||||
|
Регистрация: Jan 2002
Сообщений: 1,323
|
Можно эмулировать рекурсию.
По-моему, не так сложно.
__________________
ВКЛЮЧИ МОЗГИ!!! Одноразовых граблей не бывает. На большинство из них уже кто-то наступал. (c) Dindin |
![]() |
Часовой пояс GMT +4, время: 06:27. |
|
|
« Предыдущая тема | Следующая тема » |
|
|