Как использовать скин из основного приложения во Flex? - PullRequest
0 голосов
/ 11 февраля 2012

У меня есть приложение с загрузчиком SWF.
Из загруженного SWF-файла я получаю доступ к общедоступным переменным из основного приложения с помощью:

[Bindable] public var global:Object = FlexGlobals.topLevelApplication;

Alert.show(global.myvar); 

Все это прекрасно работает.


У меня есть файл обложки 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" />

Возможно ли то, что я хочу по-другому, или мне нужно скопировать скин во все проекты, где я хочу использовать скин?

Спасибо.

1 Ответ

0 голосов
/ 12 февраля 2012

Я уже исправил проблему.

В моем основном 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 .

...