技術分享 如何將Flex3應用程序遷移到Flex4beta
在學習Flex的過程中,你可能會遇到將Flex3應用程序遷移到Flex4beta方面的問題,這里和大家分享一下,相信本文介紹一定會讓你有所收獲。
將Flex3應用程序遷移到Flex4beta
將Flex3應用程序遷移到Flex4beta時,步驟并不復雜。除了一些缺陷修復以及默認主題稍有變化,您的應用程序通常可以像Flex3中那樣正常運行(或更好)。但您必須注意幾點。
播放器依賴性
請務必針對FlashPlayer10進行編譯。Flex4beta需要FlashPlayer10支持。
字體選擇器需要一個名稱空間
CSS字體選擇器將Flex類命名為style。例如,以下是Button和DateField的字體選擇器:
- Button{cornerRadius:10;}DateField{color:#780800;}
從Flex4beta開始,當應用程序使用字體選擇器時,需要名稱空間。如果您只在Flex應用程序中使用MXML2006名稱空間,請將以下默認名稱空間聲明添加到CSS中:
- <mx:Style>@namespace"http://www.adobe.com/2006/mxml";…</mx:Style>
如果在應用程序中使用多個名稱空間,您需要在CSS中提供各個名稱空間。有關示例,請參閱本文稍后部分中的Flex4beta中的名稱空間與包。
此外,如果應用程序使用StyleManager.getStyleDeclaration("Button")等方法,字體選擇器必須包含它的包。例如,對getStyleDeclaration()的調用將改為StyleManager.getStyleDeclaration("mx.controls.Button")。
主題更改
Flex3(Halo)組件的默認主題目前是Spark主題。因此,當您使用Flex4beta編譯應用程序時,它可能會自行調整外觀和大小。但是,如果要使用Flex3的外觀,您還是可以做到的,因為Flex4beta包含Flex3的Halo主題。要使用Halo主題進行編譯,您可以使用-compatibility-version=3.0標志或使用-theme作為附加編譯器參數來編譯應用程序。在FlashBuilder4beta中,您可以通過更改“Properties”(屬性)面板的“FlexCompiler”(Flex編譯器)部分中的“AdditionalCompilerArguments”(其他編譯器參數)設置做到這一點(請參閱圖1)。如果要使用其他編譯器參數,請確保framework/themes/Halo目錄包含在您的源路徑中。
圖1.設置其他編譯器參數
如果您選擇使用新的Spark主題,請注意許多可用于Halo主題的樣式無法用于Spark主題。Spark主題只支持數量有限的樣式,包括baseColor、color、contentBackgroundColor、focusColor、symbolColor、selectionColor和rollOverColor。要使用Spark主題更改組件上的邊框或圓角等可視部分,您需要創建一個自定義外觀。Flex4beta還加入了一種設計用于快速模型的線框外觀。
除了主題更改外,Flex4beta應用程序的默認預下載器也已經改為mx.preloaders.SparkDownloadProgressBar。這個更輕量級的預下載器可以縮短一些啟動時間。如果要使用Flex3預下載器,您只需更改一行代碼。在Application標簽中添加以下內容:preloader="mx.preloaders.DownloadProgressBar"。
如果要將應用程序從Flex3遷移到Flex4beta,我不建議將各個Flex3Halo組件替換為它們對應的Flex4beta組件。這樣投入時間可能并不是一個好方法。您應當為新的應用程序轉而使用Flex4beta組件架構。
【編輯推薦】
- Flex4beta的Spark布局特性解析
- FlexBuilder4十大新特性閃亮登場
- Flex module用法指南
- Flex4Beta引入新元素功能更強大
- FlexBuilder開發方法及特點解析