我在应用程序中有几个 mxml 组件,它们都需要同一个名为 genericX
的变量。我已将该变量包含在主 mxml 中并将其设置为公共的。
[Bindable] public var genericX:Number = 102;
但我仍然无法从其他的mxml组件中访问它。例如,如果我尝试这样做,它将无法识别该变量。
<s:Button x="{genericX}" label="Click" />
我在应用程序中有几个 mxml 组件,它们都需要同一个名为 genericX
的变量。我已将该变量包含在主 mxml 中并将其设置为公共的。
[Bindable] public var genericX:Number = 102;
但我仍然无法从其他的mxml组件中访问它。例如,如果我尝试这样做,它将无法识别该变量。
<s:Button x="{genericX}" label="Click" />
还有一种不太好的方法,但是很有效。你可以在应用程序类中创建一个静态变量。例如:
[Bindable] public static var genericX : Object
MyApplicationName.genericX
虽然不太美观,但它确实能工作 :)
西蒙
您不能以这种方式访问。在Flex中有一个叫做Events
的东西,您需要在MXML文件中通过eventDispatcher
将此变量传递给另一个变量。
例如:
[Bindable] public var genericX:Number = 102;
private function init():void {
var evt:NewCustomEvent = new CustomEvent(CustomEvent.SENDDATA);
evt.genericaValue = genericX
dispatchEvent(evt);
}
现在您需要进入想要接收此事件的MXML组件,并使用addEventListner()来接收此事件和相应的变量。
最后将其注入到您的按钮中。
你应该能够通过以下方式访问任何全局变量:
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" />
x="{parentApplication.genericX}"
[Bindable] public var genericX:Number = 102
这样声明为public static
? - Kamo