我在Model类中有这个变量:
[Bindable]
public var someXml:XML;
我已经使用BindingUtils在XML发生变化时收到通知:
BindingUtils.bindSetter(onChange, Model.getInstance(), "someXml");
private function onChange(value:Object):void {
// do something
}
当我将XML分配给变量时会触发函数onChange
,但是当我更改XML的某些属性时却不会触发:
Model.getInstance().someXml.@attr = "newValue";
为什么?
答案 0 :(得分:2)
因为XML不是EventDispatcher,因此在内容更改时不会调度Change Events。它直接从Object下降,因此没有EventDispatcher。
答案 1 :(得分:0)
" ...用于观察XML和XMLList对象的更改。这些对象不是EventDispatcher,因此如果多个元素想要监视更改,则需要通过此机制。调用watchXML(),传入您传递给XML.notification的相同通知函数。使用unwatchXML()删除该通知。"
这是感兴趣的两个功能,我认为它们是自我解释的。