Actionscript AC3,将PropertyChangeEvent事件添加到对象

Actionscript AC3,将PropertyChangeEvent事件添加到对象,actionscript,event-handling,Actionscript,Event Handling,我正在寻找一种向我定义的对象添加PropertyChangeEvent的方法。目标是在对象的任何属性发生更改时引发更改事件 所以我可以做如下的事情 var newItem:MyObject = new MyObject(); newItem.addEventListener(event.PropertyChangeEvent, myO_PropertyChangeHandler); 如果我理解正确,您正在查找元标记。如果我理解正确,您正在查找元标记 如果您无法扩展EventDispa

我正在寻找一种向我定义的对象添加PropertyChangeEvent的方法。目标是在对象的任何属性发生更改时引发更改事件

所以我可以做如下的事情

var newItem:MyObject = new MyObject();
newItem.addEventListener(event.PropertyChangeEvent, myO_PropertyChangeHandler);     

如果我理解正确,您正在查找元标记。

如果我理解正确,您正在查找元标记

如果您无法扩展EventDispatcher,因为您的对象扩展了其他对象,并且如果该超类还不是EventDispatcher的子类型或实现了包含大多数类型的IEventDispatcher,那么您需要手动实现IEventDispatcher。请参阅IEventDispatcher的帮助页面,以获取有关如何执行此操作的示例代码,即使用内部事件调度器执行实际作业


如果您无法扩展EventDispatcher,因为您的对象扩展了其他对象,并且如果该超类还不是EventDispatcher的子类型或实现了包含大多数类型的IEventDispatcher,那么您需要手动实现IEventDispatcher。请参阅IEventDispatcher的帮助页面,以获取有关如何执行此操作的示例代码,即使用内部事件调度器执行实际工作。

以这种方式执行将有效,我猜您可能不需要实现IEventDispatcher?但我正在寻找的是一种方式,我不必在每一个二传手身上都做加高动作。可以处理字符串属性而不是getter/setter的东西。如果这能更清楚地解释我的意图的话。好吧,事情不是这样的。ActionScript无法神奇地观察您的属性。。如果您希望每次更改属性时都触发PropertyChangeEvent,则需要告知每个属性的ActionScript以分派此类事件。这样做会起作用,我猜您可能不需要实现IEventDispatcher?但我正在寻找的是一种方式,我不必在每一个二传手身上都做加高动作。可以处理字符串属性而不是getter/setter的东西。如果这能更清楚地解释我的意图的话。好吧,事情不是这样的。ActionScript无法神奇地观察您的属性。。如果希望每次更改属性时触发PropertyChangeEvent,则需要告知每个属性的ActionScript以分派此类事件。
class MyObject extends EventDispatcher
{
    public function doSomething() :void
    {
        // change values, and dispatch event
        dispatchEvent( PropertyChangeEvent.createUpdateEvent( this, "myProperty", oldValue, newValue ) );
    }
}