我有一个由某些组件共享的 XML 对象。是否可以将 BindSetter 设置为特定标签并在该属性更改时调用函数?
我已经尝试过了,但 BindSetter 调用似乎不接受 XML 标记名称。
当简单地使用 [Bindable] 并使用 MXML 中的标签名称(即标签文本 =“{myXMLObject.tagName}”)时,这工作正常,所以我认为这也必须在纯 AS 中工作,我只是还没想到出如何。
有什么提示吗?
根据评论/答案,这是我的代码/用法的一个非常基本的示例。
Flex 应用程序中的两个组件都继承同一个 XML 对象;
[Bindable] public var sharedData:XML;
然后在每个组件的 creationComplete 处理程序中,我调用BindSetter
;
BindingUtils.bindSetter(sharedDataChange, sharedData, "tagName");
sharedDataChange
此时不做任何事情,只是跟踪该函数已被调用。
然后,我得到了一个显示 的值的标签sharedData.tagName
、一个 textInput 和一个设置 的按钮sharedData.tagName = textInput.text
。使用 MXML 绑定 ( {label.text = sharedData.tagName}
) 可以正常工作。但正如我所说,BindSetter 函数似乎没有检测到这些变化。