PDA

Просмотр полной версии : Обращение к объекту основного класса приложения


ladamalina
29.11.2009, 21:49
Вопрос от новичка.

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

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

Dimax4d
29.11.2009, 22:17
Можно с помощью событий.

Например:

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 {
// Здесь делаем то, что нужно
}
}



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
Спасибо. А если у меня тот класс, из которого нужно обратиться, не может генерировать события, т.е. он не "extends EventDispatcher", а "extends Sprite"?

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

Jewelz
30.11.2009, 13:13
можно через статичную переменную основного класса

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

public static var self:Main;

public function Main() {
self = this;
}