![]() |
|
||||||||||
|
|||||
|
Регистрация: Jun 2004
Адрес: Москва
Сообщений: 475
|
Типа за каждый пост не во флейм, пару байтов в мозг
|
|
|||||
|
смотря для чего оно надо.., а то можно и по-простому ссылками обменяться, не привлекая для этого диспатчер:
|
|
|||||
|
Регистрация: Jun 2004
Адрес: Москва
Сообщений: 475
|
To __etc спасибо еще раз. Сегодня сел разбираться все получилось, т.е. нужно подписывать ту функцию, которую использую из другого класса. А как можно поступить так же с переменными, чтобы можно было видеть переменные первого класса во втором и если надо менять их. А может разумнее создать класс для переменных и хранить их там. Но тогда не хочется писать VarClass.myVar, может есть какой другой красивый способ?
|
|
|||||
|
Et cetera
Регистрация: Sep 2002
Сообщений: 30,787
|
Ну не знаю, насколько оно красиво, но передавать можно ссылку на первый класс. Но тогда будет жесткая связь.
Лучше на событийной модели, вещать из второго класса первому, чтобы тот поменял параметр. |
|
|||||
|
Регистрация: Jun 2004
Адрес: Москва
Сообщений: 475
|
Но ведь не получается писать жестко var myVarClass2 = Class1.myVarClass1
Он ругается: имя мол конфликтует |
|
|||||
|
Et cetera
Регистрация: Sep 2002
Сообщений: 30,787
|
Не надо путать статические свойства с обычными.
import mx.events.EventDispatcher;
class AnyClass {
public var addEventListener:Function;
public var removeEventListener:Function;
public var dispatchEvent:Function;
private var otherClass:OtherClass;
public var anyVariable:Number;
public function AnyClass(otherClass:OtherClass) {
EventDispatcher.initialize(this);
this.anyVariable = 5;
this.addEventListener("onAnyClassEvent",otherClass);
otherClass.addEventListener("onOtherClassEvent",this);
otherClass.anyClass = this;
this.otherClass = otherClass;
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+', anyVariable = '+this.anyVariable);
}
}
class OtherClass {
public var addEventListener:Function;
public var removeEventListener:Function;
public var dispatchEvent:Function;
public var anyClass:AnyClass;
public function OtherClass() {
EventDispatcher.initialize(this);
}
private function onAnyClassEvent(event:Object):Void {
trace('Class OtherClass received event from AnyClass data: '+event.data);
if (this.anyClass) {
this.anyClass.anyVariable = 10;
}
this.dispatchEvent({type:'onOtherClassEvent',data:'hello'});
}
}
|
|
|||||
|
Регистрация: Jun 2004
Адрес: Москва
Сообщений: 475
|
Получается та же история, как и с функциями, да...
|
|
|||||
|
Регистрация: Jun 2004
Адрес: Москва
Сообщений: 475
|
Вообще-то он ругается как и раньше, я думал у меня ошибка, но сохранил твой код, тоже самое
|
|
|||||
|
Et cetera
Регистрация: Sep 2002
Сообщений: 30,787
|
Я же говорю — в событии посылаешь нужное значение параметра и вызываешь событие, которое и будет менять значение.
Ругается? Удали ASO файлы (Control > Delete ASO Files) или перемести проект в другую папку. |
|
|||||
|
Регистрация: Jun 2004
Адрес: Москва
Сообщений: 475
|
Не помогает
|
![]() |
![]() |
Часовой пояс GMT +4, время: 22:09. |
|
|
« Предыдущая тема | Следующая тема » |
|
|