我正在使用 Flex 4 创建一个应用程序。当应用程序启动时,它会读取一个 XML 文件并填充对象。.send() 调用是异步的,所以我想监听/观察这个填充的对象,当它完成后,为其他类分派一个事件,以便他们可以使用它。
package model{
public class LectureService extends HTTPService{
[Bindable]
private var _lecture:Lecture;
...
}
xml 被正确解析并加载到类 Lecture 的对象讲座中。
如果我在 main.mxml 应用程序中使用 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)); }
如何收听并将填充的对象放在另一个类中?也许问题是我正在听另一个班级,但在这种情况下,我该如何实现呢?似乎事件已发送,但我无法收听。