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

Castro 11.11.2010 18:31

Как обратится к свойствам мувика не из главного класса?
 
Есть мувик с меню на главной сцене.

Из класса MainMenu необходимо получить доступ к его свойствам

Код AS3:

package  {
        import flash.display.MovieClip;
        public class MainMenu extends MovieClip {
                public var menu:MovieClip;
                public function MainMenu() {
                        // constructor code main_menu
                        menu = stage.getChildByName('main_menu') as MovieClip;
                        menu.alpha = 0;
                }
 
        }
 
}

Матерится
Код:

Cannot access a property or method of a null object reference.
Если обратится с главного класса, которые приаттачен к ролику, то всё работает правильно.

А как же обратится правильно?

in4core 11.11.2010 19:20

Код AS3:

package  {
        import flash.display.MovieClip;
        public class MainMenu extends MovieClip {
                public var menu:MovieClip;
                public function MainMenu(st) {
                        // constructor code main_menu
                        menu = st.getChildByName('main_menu') as MovieClip;
                        menu.alpha = 0;
                }
 
        }
 
} // где  в st вы передаете stage main класса....
Но так делать не надо больше))


samana 11.11.2010 19:22

Вы можете передать передать ссылку на мувик в конструктор при создании MainMenu.
Или обращаться из MainMenu к мувику, после addedToStage
Код AS3:

package  {
        import flash.display.MovieClip;
        import flash.events.Event;
        public class MainMenu extends MovieClip {
                public var menu:MovieClip;
                public function MainMenu() {
                        // constructor code main_menu
                        addEventListener(Event.ADDED_TO_STAGE, added);
                }
 
                private function added(e:Event):void
                {
                        removeEventListener(Event.ADDED_TO_STAGE, added);
                        menu = parent["main_menu"] as MovieClip;//или parent.parent...смотря какая вложенность
                        menu.alpha=0.5
                }
        }
}

Но лучше всё таки передавать ссылку.

Castro 11.11.2010 19:45

Тоесть я пытаюсь обратится к мувику до того, как он фактически добавлен на сцену и потому вываливается ошибка?

samana 12.11.2010 01:01

Похоже на то.

Castro 12.11.2010 11:27

Спасибо


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

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