我有一个带有SWF加载程序的应用程序 从加载的SWF文件中,我正在使用以下命令从主应用程序访问公共变量:
[Bindable] public var global:Object = FlexGlobals.topLevelApplication;
Alert.show(global.myvar);
这一切都很完美。
我在主应用程序中名为“skins”的目录中有一个MXML外观文件(用于按钮) 是否可以在儿童应用程序中使用此皮肤?
我已经尝试过了,遗憾的是没有工作:
[Bindable] public var global:Object = FlexGlobals.topLevelApplication;
<s:Button label="My Text" skinClass="{global.skins.menuButtons}" />
而这,但它再也无法编译了:
[Bindable] public var global:Object = FlexGlobals.topLevelApplication;
<s:Button label="Button 1" skinClass="global.skins.menuButtons" />
<s:Button label="Button 2" skinClass="FlexGlobals.topLevelApplication.skins.menuButtons" />
我可能以其他方式想要的东西,还是我必须将皮肤复制到我想要使用皮肤的所有项目?
感谢。
答案 0 :(得分:0)
我已经解决了这个问题。
在我的主SWF文件中,我将公共变量定义为类:
public var menuButtons:Class = skins.menuButtons;
在子SWF文件中,我用FlexGlobals.topLevelApplication引用了这个变量:
[Bindable] public var global:Object = FlexGlobals.topLevelApplication;
<s:Button label="My Text" skinClass="{global.menuButtons}" />
显然,使用 global.skins.menuButtons 直接引用皮肤是不可能的。