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

ladamalina 29.11.2009 21:49

Обращение к объекту основного класса приложения
 
Вопрос от новичка.

Как обратиться к объекту основного класса приложения из какого-либо дополнительного класса? Например, чтобы изменить значение свойства основного класса.

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

Dimax4d 29.11.2009 22:17

Можно с помощью событий.

Например:
Код AS3:

public class Main extends Sprite{
        private var childClass:ChildClass;
 
        public function Main() {
                this.childClass = new ChildClass();
                this.childClass.addEventListener("event_name", this.customEventHandler);
        }
 
        private function customEventHandler(event:CustomEvent):void {
                // Здесь делаем то, что нужно
        }
}

Код AS3:

public class ChildClass extends EventDispatcher{
 
        public function ChildClass() {
 
        }
        private function someFunction():void {
                // Делаем что-нибудь...
                super.dispatchEvent(new Event("event_name")); // Отсылаем событие       
        }
}


ladamalina 29.11.2009 23:53

Спасибо. А если у меня тот класс, из которого нужно обратиться, не может генерировать события, т.е. он не "extends EventDispatcher", а "extends Sprite"?

Dimax4d 29.11.2009 23:56

Цитата:

Сообщение от ladamalina (Сообщение 869135)
Спасибо. А если у меня тот класс, из которого нужно обратиться, не может генерировать события, т.е. он не "extends EventDispatcher", а "extends Sprite"?

Sprite может генерировать события, так как он сам является наследником EventDispatcher

Jewelz 30.11.2009 13:13

можно через статичную переменную основного класса

Сайлас 30.11.2009 13:37

Если есть гарантия, что экземпляр класса один (например мейн класс), то можно синглтоном... Ну в принципе Jewelz про это и говорит наверное :)

Код AS3:

public static var self:Main;
 
public function Main() {
self = this;
}



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

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