附加XML后,我可以触发changeWatcher吗?

时间:2010-02-25 17:18:27

标签: flex actionscript-3 actionscript flex3

所以我要求在我的应用程序中添加一个撤销功能,我发现了这个漂亮的ChangeWatcher类,但它并没有完全符合我的要求,我希望有人知道如何。

ChangeWatcher似乎监视变量引用的赋值。所以当我说:

myXML = <xml/>

它开启它的功能就好了,花花公子,但当我说:

myXML.appendChild(thisOtherXMLVar)

我什么都没得到,即使变量改变引用也没有,所以ChangeWatcher不会触发该函数。

那么有谁知道如何让ChangeWatcher接收变量的所有变化?

1 个答案:

答案 0 :(得分:1)

ChangeWatcher是一个非常酷的课程。但是,除非您尝试观看的属性发生变化,否则它不会起作用。

如果myXML变量是Bindable,那么当您将其设置为XML值时,它将调度一个事件(默认为propertyChange)。 ChangeWatcher为该对象添加一个事件监听器,用于声明任何[Bindable]事件。它通过获取该变量的Bindable元数据来实现此目的。

但是XML类本身没有任何Bindable,所以调用appendChild不会调度任何事件,而ChangeWatcher也不会工作。

根据您的评论进行更新,您可以只对XML进行所有更改,然后重置变量。然后,这将导致ChangeWatcher注册更新。

希望有所帮助, 兰斯