我在应用程序中有几个mxml组件,所有这些组件都需要名为genericX
的相同变量。我已将该变量包含在主mxml中并将其公开
[Bindable] public var genericX:Number = 102;
但我仍然无法从其他mxml组件访问它。例如,如果我尝试这样做,它就无法识别变量。
<s:Button x="{genericX}" label="Click" />
答案 0 :(得分:4)
还有一种污秽的解决方案可行,但并不好。您可以针对应用程序类创建静态变量。例如:
[Bindable] public static var genericX : Object
你可以从以下任何地方访问它:
MyApplicationName.genericX
它不漂亮,但确实有效:)
西蒙
答案 1 :(得分:3)
您无法以这种方式访问。 Flex中有一些名为 Events
的内容,您需要使用 eventDispatcher
将MXML文件中的此变量传递给另一个。
例如
[Bindable] public var genericX:Number = 102;
private function init():void {
var evt:NewCustomEvent = new CustomEvent(CustomEvent.SENDDATA);
evt.genericaValue = genericX
dispatchEvent(evt);
}
现在您需要进入要接收此事件的MXML组件,并使用addEventListner()来接收此事件和相应的变量。
然后最后将它注入你的按钮。
答案 2 :(得分:1)
您应该可以使用以下命令访问任何全局变量:
Flex 3:
var app:Application = mx.core.Application.application as Application;
Flex 4(看起来像你正在使用的):
var app:Object = FlexGlobals.topLevelApplication;
然后:
<s:Button x="{app.genericX}" label="Click" />
答案 3 :(得分:0)
Here是在MXML
组件之间共享变量的示例,方法是在主应用程序中声明它们是公开的。
答案 4 :(得分:0)
x="{parentApplication.genericX}"