Форум Flasher.ru

Форум Flasher.ru (http://www.flasher.ru/forum/index.php)
-   ActionScript 3.0 (http://www.flasher.ru/forum/forumdisplay.php?f=83)
-   -   событие при загрузке приложения (http://www.flasher.ru/forum/showthread.php?t=137611)

Cornford 17.03.2010 21:18

событие при загрузке приложения
 
Здравствуйте!
подскажите, как сделать чтобы некоторое событие возникало при загрузке приложения
(при запуске приложения пользователем)
пишу так:
Код AS3:

stage.addEventListener(Event.COMPLETE, compStg);
function compStg(e:Event):void{
trace('complete');
}

но это наверное не правильно...

mickfallout 17.03.2010 21:21

Код AS3:

package 
{
        import flash.display.Sprite;
        import flash.events.Event;
        public class Main extends Sprite
        {
 
                public function Main():void
                {
                        if (stage) init();
                        else addEventListener(Event.ADDED_TO_STAGE, init);
                }
 
                private function init(e:Event = null):void
                {
                        removeEventListener(Event.ADDED_TO_STAGE, init);
                        // entry point
                }
 
        }
 
}

вроде так. стандартная форма из FlashDevelop'a

TanaTiX 17.03.2010 21:28

mickfallout, а зачем делать это:
Код AS3:

if (stage) init();

ИМХО достаточно просто
Код AS3:

package 
{
        import flash.display.Sprite;
        import flash.events.Event;
        public class Main extends Sprite
        {
 
                public function Main():void
                {
                        addEventListener(Event.ADDED_TO_STAGE, init);
                }
 
                private function init(e:Event):void
                {
                        removeEventListener(Event.ADDED_TO_STAGE, init);
                        // entry point
                }
 
        }
 
}


Cornford 17.03.2010 21:35

чегото я не очень понял. а где тогда прописывать событие которое должно происходить при заргузке?
так чтоли ? :
Код AS3:

.....
public function Main():void
{
addEventListener(Event.ADDED_TO_STAGE, init);
function init(e:Events):void{
trace('123 etc');
}
}
.......


mickfallout 17.03.2010 21:39

Цитата:

Сообщение от TanaTiX (Сообщение 893785)
mickfallout, а зачем делать это:
Код AS3:

if (stage) init();


Не я писал это, стандартная форма) видимо чтобы негородить ненужных подписок/отписок от/на события когда можно сразу выполнять. Ваш вариант тоже работает...

TanaTiX 17.03.2010 21:51

mickfallout, а можно увидеть где эта форма прописана как стандартная?
Как по мне, то в данной ситуации это событие осуществляется всего один раз, потом мы от него отписываемся, зачем нам тогда еще и проверка. К тому же, как я понимаю, речь идет о главном классе.

mickfallout 17.03.2010 22:00

Цитата:

Сообщение от TanaTiX (Сообщение 893801)
mickfallout, а можно увидеть где эта форма прописана как стандартная?

FlashDevelop 3.0.6. new project->AS3 project. Создастся проект в котором будет вышеописанный Main.as.
Цитата:

Сообщение от TanaTiX (Сообщение 893801)
событие осуществляется всего один раз, потом мы от него отписываемся, зачем нам тогда еще и проверка

А в "моем" коде этих лишних телодвижений нету - без всяких подписываний выполняется init. Подписывание выполняется когда эта флешка не основная. Проверка как раз чтоб понять нужно ли подписывание, или можно сразу запускать.


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

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