Форум Flasher.ru

Форум Flasher.ru (http://www.flasher.ru/forum/index.php)
-   ActionScript 3.0 (http://www.flasher.ru/forum/forumdisplay.php?f=83)
-   -   Не могу вызвать Event.Added_to_stage (http://www.flasher.ru/forum/showthread.php?t=147071)

12funteam89 25.11.2010 13:12

Не могу вызвать Event.Added_to_stage
 
TypeError: Error #1009: Не удается вызвать свойство или метод со ссылкой на объект "null".
at code.amoebaclasses::Ship/live()
at code.amoebaclasses::InteractiveLayer/live()
at code::Game2()

Вот мои коды скажите пожалуйста как вызвать функцию Added to stage

Это вот отсюда at code.amoebaclasses::Ship/live()
Код AS3:

public function live(ref:*):void
                {
 
                        // Set game level reference
                        owner = ref;
 
                        // Initialize sounds
                        thrustSnd = new thrustSound();
 
                        // Respond to keyboard presses
                        stage.addEventListener(KeyboardEvent.KEY_DOWN,keyPressHandler);
                        stage.addEventListener(KeyboardEvent.KEY_UP,keyReleaseHandler);
 
                        // Update screen every frame
                        addEventListener(Event.ENTER_FRAME,enterFrameHandler);
                }

А это отсюда at code.amoebaclasses::InteractiveLayer/live()
Код AS3:

public function live(ref:*):void
                {
                        // Set game level reference
                        owner = ref;
 
                        // Initialize ship
                        ship.live(this);
 
                        // Initialize Amoeba
                        amoebaCell = new Amoeba();
                        amoebaCell.live(this,"amoebaCell");
                        addChild(amoebaCell);
 
                        // Initialize sounds
                        shotSnd = new shootSound();
 
                        // Update screen every frame
                        addEventListener(Event.ENTER_FRAME,enterFrameHandler);
                }


goodguy 25.11.2010 13:16

в конструкторе главного класса можно создать код проверяющий, есть ли сцена, или она еще null
Код AS3:

if (stage) initialize();
else this.addEventListener(Event.ADDED_TO_STAGE, initialize, false, 0, true);

Чтобы при этом сам метод initialize() не вызывал ошибку аргументов, параметр Event нужно сделать не обязательным:
Код AS3:

private function initialize(e:Event = null):void {
 
}

И уже внутри метода initialize() выстраивать логику программы

Можно и просто добавить слушатель, без проверки существует ли сцена. Но суть особо не изменится.


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

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