會怕嗎?Flex 4已經到Beta了,
相信大家都很人心惶惶吧,
很多人在向我問Flex 4差很多嗎?
Namespace好複雜喔,我搞不清楚要怎嚜寫了,
別怕….別怕….在我的眼中其實Flex的架構根本沒變,
因此我決定有時間的時候分幾篇來介紹如何由Flex 3進入Flex 4所必備的應有知識,
只要你對Flex的架構夠清楚,
相信你三兩下就能進入Flex 4的狀況了。
Flex 4的主要十項改變:
分別為:
- 整合了Adobe Catalyst
- 提供新的 Spark組件架構
- 新的 MXML 2009 Namespace
- 對View States的改進
- 提供FXG支持
- 加強元件中Skin的配置
- 更新的排版組件的配置
- 新的Flash Builder 4開發工具 (原為Flex Builder 3)
- 增加編譯器效能25%
- 新的文字引擎
實際內容人家已經寫好了,就請移駕到該作者網站上去觀賞,不然我只是複製貼上多沒意思。
原文: http://www.infoq.com/articles/top-10-flex4-changes
翻譯: http://www.infoq.com/cn/articles/top-10-flex4-changes
新的 MXML 2009 Namespace:
我們先從大家最害怕的Namespace談起,
以前在Flex 3中只有一組Namespace,那就是mx這組,
有上過我Flex課程的同學,
我們在課堂上已經有解釋過如何從manifest.xml檔案中去看其對應的類別與類別路徑了,
Flex 4同樣繼承了相同的方式,將所有的類別對應全都寫在manifest.xml檔中,
你還是可以從中看到其Namespace對應的內容,
只要你能了解它的結構,那麼要進入到Flex 4中就算是完成了一大步了。
在Flex 4中大家之所以會懼怕的原因,莫過於最常用的4組Namespace,分別為:
- xmlns:fx="http://ns.adobe.com/mxml/2009″
- xmlns:s="library://ns.adobe.com/flex/spark"
- xmlns:mx="library://ns.adobe.com/flex/halo"
- xmlns="http://ns.adobe.com/fxg/2008″
說穿了,也只不過依照不同的類型分成四大組而已,
這麼做的好處就在於可以非常簡單的讓Flex 3和Flex 4的元件可以混合使用,
所以Flex 4中可以用Flex 3的標籤所使用的方法並沒有大家想像中的了不起,
只不過分成兩組內容區分罷了,
原廠有對MXML 2009有詳細的說明,
你可以參考 http://opensource.adobe.com/wiki/display/flexsdk/MXML+2009 。
xmlns:mx="library://ns.adobe.com/flex/halo"
們先從mx這組開始說起,
在Flex 3中我們用的是xmlns:mx="http://www.adobe.com/2006/mxml"這個Namespace,
而Flex 4中用的是xmlns="http://ns.adobe.com/fxg/2008″,
意思很明顯了,
也就是告訴你以前用mx寫的元件你就照辦就對了,
不然怎麼兼容Flex 3和Flex 4的標籤啊。 XD
xmlns:s="library://ns.adobe.com/flex/spark"
這個看起來就怪怪的對吧,
別擔心,這只不過是Flex 4中新的一組元件罷了(稱為spark),
這組元件的好處在於你可以很容易的用MXML 2009來描述它的外觀,
寫法大致上與Flex 3的halo系列元件差不多,例如:
<s:Button label="Flex 4 Button"/>
<mx:Button label="Flex 3 Button"/>
這樣就能混合寫出halo和spark元件了,
而使用spark元件最大的好處是可以用MXML 2009標籤去定義它的Skin外觀,
這是以前Flex 3所做不到的,
這要感謝在Flex 4和CS4以後所搞出來的FXG格式,
至於要如何描述,我在以後的文章再繼續介紹,
免得這篇永無止境的寫下去。
xmlns:fx="http://ns.adobe.com/mxml/2009″
fx這組Namespace有新的任務了,
我們以前常寫的<mx:Bindiing><mx:Style><mx:Script><mx:Array>,
這些標籤現在都歸納到fx這個Namespace底下了,
我就姑且稱他們為一般性標籤,
雖然看似複雜,其實這有一個非常大的好處,
那就是在Flex 4中可以將元件的Namespace和一般性標籤的Namespace分開,
對邏輯分類算是非常洽當的分法,
我將一些對應的標籤列在下面:
Flex 3 | Gumbo |
xmlns:mx="http://www.adobe.com/2006/mxml" | xmlns:fx="http://ns.adobe.com/mxml/2009" |
<mx:Binding> | <fx:Binding> |
<mx:Component> | <fx:Component> |
<mx:Metadata> | <fx:Metadata> |
<mx:Model> | <fx:Model> |
<mx:Repeater> | <fx:Repeater> |
<mx:Script> | <fx:Script> |
<mx:Style> | <fx:Style> |
當然在Flex 4中有有新的項目,關於細節以後在說明:
Flex 3 | Gumbo |
xmlns:mx="http://www.adobe.com/2006/mxml" | xmlns:fx="http://ns.adobe.com/mxml/2009" |
N/A | <fx:Declarations> |
N/A | <fx:Definition> |
N/A | <fx:DesignLayer> |
N/A | <fx:Library> |
N/A | <fx:Private> |
N/A | <fx:Reparent> |
關於資料型態一樣照樣翻過去就可以用了,別擔心:
Flex 3 | Gumbo (MXML 2009) |
xmlns:mx="http://www.adobe.com/2006/mxml" | xmlns:fx="http://ns.adobe.com/mxml/2009" |
<mx:Array> | <fx:Array> |
<mx:Boolean> | <fx:Boolean> |
<mx:Class> | <fx:Class> |
<mx:Date> | <fx:Date> |
<mx:Function> | <fx:Function> |
<mx:int> | <fx:int> |
<mx:Number> | <fx:Number> |
<mx:Object> | <fx:Object> |
<mx:RegExp> | <fx:RegExp> |
<mx:String> | <fx:String> |
<mx:uint> | <fx:uint> |
N/A | <fx:Vector> |
<mx:XML> | <fx:XML> |
<mx:XMLList> | <fx:XMLList> |
Vector這傢伙是新的資料型態,一樣以後再說 XD
xmlns="http://ns.adobe.com/fxg/2008″
看這組Namespace應該不難猜出他是拿來幹麻用的,
沒錯!這的確是拿來描述FXG內容用的,這個同樣是說來話長,
因為這還牽扯到一些新的標籤,以後在另闢一篇來說明吧。
如何?有沒有很簡單呢?
我快速的幫大家整理了一下Namespace的分類與用途,
相信你在下一次使用Flex 4的時候,
應該可以非常容易的將原來在Flex 3中的撰寫方法移植到Flex 4上去,