Форум Flasher.ru

Форум Flasher.ru (http://www.flasher.ru/forum/index.php)
-   ActionScript 3.0 (http://www.flasher.ru/forum/forumdisplay.php?f=83)
-   -   Ограничение 15 секунд и размер родительского окна (http://www.flasher.ru/forum/showthread.php?t=129315)

huzik 29.08.2009 19:54

Ограничение 15 секунд и размер родительского окна
 
Привет всем! У меня к вам два вопроса, никак между собой не связанных, если не считать того, что они возникли при разработке одной и той же программы. Итак:

1) В программе выполняется множество вычислений, а время выполнения скрипта приблизилось к 10-ти секундам. Вычислений будет еще больше, так что, я уверен, скрипту потребуется около 30-ти секунд, если не больше. Где-то читал про ограничение по времени выполнения скрипта - 15 секунд. Есть ли возможность обойти это ограничение (видел где-то, что у одного товарища скрипт выполнял расчеты по 15 минут)? На что действует это ограничение (на отдельную функцию, на скрипт для одного кадра или еще для чего-нибудь)?

2) Можно ли как-то установить размер окна флэшки? После экспорта в .ехе окно получается пикселей на 8 больше размеров самой сцены. Мелочь, но глаз режет.

Спасибо всем ответившим!

Psycho Tiger 29.08.2009 20:20

1) На скрипт как бы действует.
То есть если скрипт будет продыхивать хотя бы миг каждые 10 секунд - он не вылетит.
А вообще - Publish settings - Flash, но блин... Ты уверен?

2) Можно.. fscommand что-ли... Вообще не помню как, но 100% говорю что можно.

huzik 29.08.2009 20:43

"Продыхивать" его с помощью таймаута?

спасибо!

Sprynk 12.09.2009 13:59

Publish settings->Script time limit.

wvxvw 12.09.2009 14:44

Код AS3:

var s:String = "";
var highBits:uint;
var lowBits:uint;
var flag:int;
 
function claculate(event:Event = null):void
{
        removeEventListener(Event.ENTER_FRAME, claculate);
        if (flag > 10)
        {
                // Script time limit = 5
                trace("Finished:", s); //Finished: 013a38f5
                return;
        }
        try
        {
                while (true)
                {
                        if (lowBits == 0xFFFFFFFF)
                        {
                                highBits++;
                                lowBits = 0;
                        }
                        lowBits++;
                        s = (highBits ? highBits.toString(16) : "") + to8placesHex(lowBits);
                }
        }
        catch (error:ScriptTimeoutError)
        {
                flag++;
                addEventListener(Event.ENTER_FRAME, claculate);
        }
}
function to8placesHex(input:uint):String
{
        var res:String = input.toString(16);
        while (res.length < 8) res = "0" + res;
        return res;
}
claculate();

Эксперементируйте осторожно, лучше сразу поставьте маленький таймаут, а то очень долго будете ждать результатов.


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

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