![]() |
|
||||||||||
|
|||||
|
Регистрация: Jun 2004
Адрес: Москва
Сообщений: 475
|
Есть два класса из одного вызываю функцию в другом, а потом хочу из другого вызвать функцию из первого - не получается.
Где можно почитать о правильной иерархии, или как это называется, классов, у Мука совсем мало об этом, или я не правильно понимаю суть проблемы? |
|
|||||
|
Et cetera
Регистрация: Sep 2002
Сообщений: 30,787
|
Связать классы подпиской на события друг-друга, например.
Или почитай про IoC/DI: http://orangeflash.eu/?p=79 Последний раз редактировалось etc; 18.01.2007 в 15:31. |
|
|||||
|
Регистрация: Jun 2004
Адрес: Москва
Сообщений: 475
|
Там написано "это сможет поянть даже контуженый инвалид" очевидно это я и есть.
По сути ничего не изменилось из первого доступ есть, из второго нет. |
|
|||||
|
Et cetera
Регистрация: Sep 2002
Сообщений: 30,787
|
Я же говорю — сделать обоих вещателями.
A создает B, подписывает B на свои события и сам подписывается на события B. Вот тебе и двусторонняя связь. |
|
|||||
|
Регистрация: Jun 2004
Адрес: Москва
Сообщений: 475
|
class Class1{
public function fun1() {
//бла-бла
}
public function fun2() {
//бла-бла
Class2.fun3(arg)
}
}
//
class Class2{
public static function fun3(arg) {
//бла-бла
if(бла-бла){
Class1.fun1()
}
}
}
private var b:Class2 и из Class2 уберу static из функции он все равно ругается |
|
|||||
|
Регистрация: Jun 2004
Адрес: Москва
Сообщений: 475
|
Цитата:
|
|
|||||
|
Et cetera
Регистрация: Sep 2002
Сообщений: 30,787
|
Нет-нет.
import mx.events.EventDispatcher;
class AnyClass {
public var addEventListener:Function;
public var removeEventListener:Function;
public var dispatchEvent:Function;
public function AnyClass(otherClass:OtherClass) {
EventDispatcher.initialize(this);
this.addEventListener("onAnyClassEvent",otherClass);
otherClass.addEventListener("onOtherClassEvent",this);
this.sendMessage();
}
private function sendMessage():Void {
this.dispatchEvent({type:'onAnyClassEvent',data:'test'});
}
private function onOtherClassEvent(event:Object):Void {
trace('Class AnyClass received event from OtherClass data: '+event.data);
}
}
import mx.events.EventDispatcher;
class OtherClass {
public var addEventListener:Function;
public var removeEventListener:Function;
public var dispatchEvent:Function;
public function OtherClass() {
EventDispatcher.initialize(this);
}
private function onAnyClassEvent(event:Object):Void {
trace('Class OtherClass received event from AnyClass data: '+event.data);
this.dispatchEvent({type:'onOtherClassEvent',data:'hello'});
}
}
Последний раз редактировалось etc; 08.02.2007 в 23:39. |
|
|||||
|
Регистрация: Jun 2004
Адрес: Москва
Сообщений: 475
|
Да мудрено, буду разбираться, спасибо, где этому учат?
![]() |
|
|||||
|
Et cetera
Регистрация: Sep 2002
Сообщений: 30,787
|
Здесь
![]() |
![]() |
![]() |
Часовой пояс GMT +4, время: 18:16. |
|
|
« Предыдущая тема | Следующая тема » |
|
|