Форум Flasher.ru

Форум Flasher.ru (http://www.flasher.ru/forum/index.php)
-   ActionScript 1.0/2.0 (http://www.flasher.ru/forum/forumdisplay.php?f=93)
-   -   увеличить глубину рекурсии (http://www.flasher.ru/forum/showthread.php?t=126799)

TanaTiX 27.06.2009 17:15

увеличить глубину рекурсии
 
Как увеличить глубину рекурсии? В качестве примера можно юзать такой код:
Код AS1/AS2:

j = 1000;
foo(0);
function foo(n) {
        if (n<j) {
                trace(n);
                foo(n+1);
        }
}

ЗЫ. циклы не предлагать - задачу специально максимально упростил.

iNils 27.06.2009 20:22

Цитата:

Сабж.
Так сложно сделать копипаст названия темы?

etc 27.06.2009 20:27

Прервать и продолжить?

TanaTiX 27.06.2009 21:30

Цитата:

Сообщение от iNils (Сообщение 831338)
Так сложно сделать копипаст названия темы?

Даже не знаю что ответить... Исправился.

Цитата:

Сообщение от __etc (Сообщение 831342)
Прервать и продолжить?

Как это можно осуществить к примеру на указанном примере? (пардон за тафтологию)
Что-то типа:
Код AS1/AS2:

j = 400;
foo(0);
function foo(n) {
        if (n<j) {
                trace(n);
                setTimeout(foo,0,n+1);
        }
}

Или есть более "правильные" способы?

etc 27.06.2009 21:48

Код AS1/AS2:

j = 400;
step = 0;
steps = 200;
foo(0);
function foo(n) {
        if (n<j) {
                step++;
                if (step > steps) {
                        setTimeout(foo,0,n+1);
                        step = 0;
                } else {
                        foo(n+1);
                }
        }
}

«Правильный» он тут может быть только в кавычках.

TanaTiX 28.06.2009 00:51

__etc, а какой смысл в проверке внутри функции глубины рекурсии? Ведь все равно рано или поздно придется применять задержку. Или с точки зрения работоспособности (или какой другой) это имеет смысл, не смотря на затрачиваемые на это ресурсы?

etc 28.06.2009 01:21

Смысл в преодолении лимита и всё.

DarkLight 28.06.2009 02:51

Глубина рекурсии байтом отдельным задается во флешке, в мануале к flasm (FLash ASseMbler) можно найти описание. Если очень хочется - делаем незапакованную свф, меняем байт, пакуем. А в CS4 уже в настройках публикации можно задавать. Но глубина рекурсии под 1000 это жесть, обычно можно написать эффективнее без нее.

TanaTiX 28.06.2009 13:17

DarkLight, я в цс4 искал, но что-то не нашел. Ткните, пожалуйста, носом невнимательного.
Flasm - интересная тема, надо почитать.

aksios 28.06.2009 14:32

Цитата:

Сообщение от DarkLight (Сообщение 831428)
А в CS4 уже в настройках публикации можно задавать.

Во Flex может? :)
Ваще автор, зачем Вам это?
Ваше творение при таком раскладе скушает все ресурсы, нужно делать, если что, хвостовую рекурсию и уходить с глубины всеми возможными способами.


Часовой пояс GMT +4, время: 12:53.

Copyright © 1999-2008 Flasher.ru. All rights reserved.
Работает на vBulletin®. Copyright ©2000 - 2026, Jelsoft Enterprises Ltd. Перевод: zCarot
Администрация сайта не несёт ответственности за любую предоставленную посетителями информацию. Подробнее см. Правила.