Я создаю приложение с помощью Flex 4. Когда приложение запускается, оно читает файл XML и заполняет объекты.Вызов .send () является асинхронным, поэтому я хотел бы прослушать / посмотреть этот заполненный объект, а когда он завершится, отправить событие для других классов, чтобы они могли его использовать.
package model{
public class LectureService extends HTTPService{
[Bindable]
private var _lecture:Lecture;
...
}
Xml правильно анализируется и загружается в объектную лекцию класса Lecture.
Если я использую нотацию MXML в приложении main.mxml, работает нормально (объект используется, когдаон заполняется после асинхронного запроса):
<mx:Image id="currentSlide" source={lectureService.lecture.slides.getItemAt(0).path} />
НО, у меня есть другой класс ActionScript, и я не могу прослушать это отправленное (посредством [Bindable]) событие.
package components{
public class LectureSlideDisplay extends Image
{
public function LectureSlideDisplay()
{
super();
this.addEventListener(PropertyChangeEvent.PROPERTY_CHANGE, onChangeTest);
}
private function onChangeTest(e:PropertyChangeEvent):void {
trace('test');
}
Я уже пытался:
- с использованием (как указано выше) addEventListener (PropertyChangeEvent.PROPERTY_CHANGE, methodName).
- пытался изменить [Bindable] на [Bindalbe ("nameEvent ")] и прислушиваться к этому, ничего.
- с использованием метода CreateWatcher, не работает.
попытался взглянуть на сгенерированный код класса, но не сделалПомоги мне
if (this.hasEventListener("propertyChange")){
this.dispatchEvent(mx.events.PropertyChangeEvent.createUpdateEvent(this, "lecture", oldValue, value));
}
Как я могу слушать и иметь заполненный объект в другом классе?Может быть проблема в том, что я слушаю из другого класса, но в этом случае, как я могу это реализовать?Кажется, событие отправлено, но я не могу его слушать.