Форум 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=187333)

Life_Master 17.11.2012 23:04

Позиционирование, как правильно задать?
 
Вот объясните мне неучу, почему компилятор ругается на Error #1009: Не удается вызвать свойство или метод со ссылкой на объект "null" ?

Класс Main.as
Код AS3:

public class Main extends Sprite 
        {
 
                private var _menu:menuMain = new menuMain();
 
                public function Main():void
                {
                        if (stage) init();
                        else addEventListener(Event.ADDED_TO_STAGE, init);
                }
 
                public function init():void
                {
                        removeEventListener(Event.ADDED_TO_STAGE, init);
                        showMenu();
                }
 
                public function showMenu():void
                {
                        addChild(_menu);                       
                }
        }

Класс mainMenu.as
Код AS3:

public class menuMain extends MovieClip
        {
 
                private var stg:Stage;
 
                public static var _mainMenu:mainMenu;
 
                public function menuMain()
                {
                        _mainMenu = new mainMenu();
 
                        x = stg.stageWidth / 2;
                        y = stg.stageHeight / 2;
 
                        addChild(_mainMenu);
 
                }               
        }

Когда x = stagr.stageWidth / 2 и т.д. пишешь в Main классе, после addChild, то все работает.
Когда в mainMenu классе пишешь х = 200 и т.д., тоже работает.
Но когда в mainMenu пишешь x = stage.stageWidth / 2 и т.д., даже с указанием this.stage... ругается на ошибку 1009... Почему? Либо дайте ссылку на матчасть.

illuzor 17.11.2012 23:12

Stage становится достпупным только после добавление ДисплейОбджекта в дисплейЛист.
К stage нужно обращаться либо после добавления объекта на сцену, либо в классе этого объекта слушать добавление на сцену через Event.ADDED_TO_STAGE

Tails 17.11.2012 23:14

Вот мат часть http://flasher.ru/forum/showpost.php...6&postcount=78

Ваш класс menuMain сам по себе не может обратиться к stage (можно через root)

Life_Master 17.11.2012 23:51

Работает, спасибо =)


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

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