0
我有一個SWF加載程序的應用程序。
從加載的SWF文件,我訪問從主應用程序公共變量與此:如何在Flex的主應用程序中使用皮膚?
[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" />
是否有可能我想以另一種方式獲得什麼,或者我是否必須將皮膚複製到我想要使用皮膚的所有項目中?
謝謝。
一個選項可以是製作一個具有所有皮膚類的swc,並將該swc標記爲rsl。這樣你就有skin.swc,main_app.swf和child_app.swf。由於swc是rsl,它不會增加任何swf的權重,編譯器也會很高興。否則,您可以通過getDefinitionByName從mainApp獲取皮膚的類實例,並使用該類創建皮膚實例。當然,在這種情況下你不會有任何編譯時間檢查。 – catholicon 2012-02-11 20:35:27