2011-06-27 80 views
1

因此我決定在AIR應用程序中實現一些主題。我已將我的CSS文件轉換爲SWF文件,從主文件中刪除了Style鏈接。根據存儲在文件中的用戶首選項,我決定使用哪個主題。即;使用StyleManager類加載SWF文件。在Flex AIR應用程序中動態加載樣式

我使我的應用程序窗口不可見,爲StyleManager.loadStyleDeclarations方法返回的IEventDispatcher對象添加了StyleEvent.COMPLETE事件偵聽器。 StyleEvent.COMPLETE發生後,我使我的主窗口可見。

我現在的問題是,幾秒鐘後,我可以看到白色畫布和所有我沒有任何風格的組件之前使用選擇的風格。我想知道我的方法是否正確,或者是否需要進行任何更改才能正確實施?

回答

1

好的,所以我似乎已經弄清楚了自己。儘管從這link獲得一些幫助。

以前我讀了我的applicationComplete中的設置並加載了樣式。所以我想所有的UI組件都被創建並添加到顯示列表中。他們裸露裸體沒有任何風格價值。

因此,我將設置文件的讀數更改爲preinitialize,這樣在觸發applicationComplete時,AIR已經加載了SWF樣式表。所以它會顯示我想要的用戶界面。

+0

+1好東西,初始化可能也會起作用,而且會更常用 – Ryan

+0

你能告訴我在'preinitialize'和'initialize'中寫入東西的區別嗎?到目前爲止,我只使用了'creationComplete'和'applicationComplete'。 – midhunhk

+0

不用手:我們不使用預初始化,因爲不是所有的容器/對象的子都將被創建。我們總是使用'​​initialize'來設置變量,爲數據提供dataProvider集合(如Adobe推薦的)。所有的容器兒童都是在這個時候創建​​的。我們所有的eventlistener都會在creationComplete中設置(如Adobe建議的),它會在所有子級之後被觸發,並且創建並顯示子級的子級。 – Ryan

相關問題