如何绑定组件内的全局变量?

时间:2009-08-19 19:05:57

标签: flex actionscript-3 actionscript flex3 components

我开发了一个组件,它是几个项目(画布,标签等等)的组合,但是当我尝试将它绑定到变量时,例如:{stationXML.getItemAt(1).AAA。 @value},它不起作用。在我将一个组件中的所有项目组合在一起之前,它们都在主MXML文件中,而这些文件在他们工作的时候。

不确定是否重要,但“stationXML”arraycollection变量在文件“Station.as”中声明。

有什么想法吗?

2 个答案:

答案 0 :(得分:1)

当你说“全局变量”在哪里以及如何声明它? Flex应用程序中没有真正的全局变量。如果在主MXML类中声明某些内容并未使其成为全局内容,则会使该主应用程序类的实例可以访问它。如果要在组件中访问该值,则必须将其传递给该组件。或者,您可以实现单例类来有效地提供对这些值的“全局”访问。


例如,在组件中,创建一个公共属性:

public var xmlData:XML;

然后在主mxml中,传递值:

<xxx:MyComponent id="foo" x="10" xmlData="{theValue}"/>

答案 1 :(得分:0)

Station.as是否扩展EventDispatcher并且类(或属性)是否带有[Bindable]元数据标记?为了使绑定工作,您的类需要在其继承结构中的某个位置扩展EventDispatcher,以便它能够通知已更新的绑定“客户端”。