Apache flex Flex watch可绑定属性其他类

Apache flex Flex watch可绑定属性其他类,apache-flex,events,properties,bindable,Apache Flex,Events,Properties,Bindable,我正在使用Flex4创建一个应用程序。 当应用程序启动时,它读取XML文件并填充对象。.send()调用是异步的,因此我希望侦听/监视这个填充的对象,当它完成时,为其他类分派一个事件,以便它们可以使用它 package model{ public class LectureService extends HTTPService{ [Bindable] private var _lecture:Lecture; ... } xml被正确解

我正在使用Flex4创建一个应用程序。 当应用程序启动时,它读取XML文件并填充对象。.send()调用是异步的,因此我希望侦听/监视这个填充的对象,当它完成时,为其他类分派一个事件,以便它们可以使用它

package model{
    public class LectureService extends HTTPService{
        [Bindable]
        private var _lecture:Lecture;

        ...
}
xml被正确解析并加载到类讲座的对象讲座中

如果我在main.MXML应用程序中使用MXML表示法,效果很好(对象在异步请求后填充时使用):

我已经试过:

  • 使用(如上)addEventListener(PropertyChangeEvent.PROPERTY\u CHANGE,methodName)
  • 尝试将[Bindable]更改为[Bindable(“nameEvent”)],并侦听此消息,但未执行任何操作
  • 使用CreateWatcher方法不起作用
  • 试图查看类的生成代码,但没有帮助我

    if(this.hasEventListener(“propertyChange”)){
    this.dispatchEvent(mx.events.PropertyChangeEvent.createUpdateEvent(这个“讲座”,oldValue,value));
    }

  • 如何侦听并将填充的对象放在另一个类中? 也许问题是我在听另一个类的内容,但在这种情况下,我如何实现这一点?
    事件似乎已调度,但我无法侦听它。

    考虑使用
    BindingUtils
    类。您可以找到文档。还有几个使用示例:,。

    仅仅扩展类并不能解决所有问题。您应该仔细检查HTTP请求

    change属性事件在内部用于观察者,不会在整个组件中分派。您想为您的
    讲师SlideDisplay
    做的是覆盖源代码设置器。每次调用它时,都会绑定一个新值:

    package components{
    
        public class LectureSlideDisplay extends Image
        {      
            override public function set source(value:Object):void
            {
               super.source = value;
               // do whatever
            } 
    
            public function LectureSlideDisplay()
            {
                super();
            }
       }
    }
    

    您应该认真阅读。

    对于想要答案的人,我已决定更改addEventListener对象。 使用以下内容是不正确的:

    this.addEventListener(...)
    
    改用:

    lectureService.addEventListener(...)
    

    我已更改代码,在主应用程序MXML中侦听此事件,然后在handler方法中,调用组件的public方法以使用新数据。

    谢谢,您的链接非常有用!
    this.addEventListener(...)
    
    lectureService.addEventListener(...)