由Flex 3進入Flex 4的必備知識 PART 1

    技术2025-06-12  16

    會怕嗎?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中大家之所以會懼怕的原因,莫過於最常用的4Namespace,分別為:

    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 3Flex 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"這個NamespaceFlex 4中用的是xmlns="http://ns.adobe.com/fxg/2008″意思很明顯了,也就是告訴你以前用mx寫的元件你就照辦就對了,不然怎麼兼容Flex 3Flex 4的標籤啊。 XD

    xmlns:s="library://ns.adobe.com/flex/spark"

    這個看起來就怪怪的對吧,別擔心,這只不過是Flex 4中新的一組元件罷了(稱為spark)這組元件的好處在於你可以很容易的用MXML 2009來描述它的外觀,寫法大致上與Flex 3halo系列元件差不多,例如:<s:Button label="Flex 4 Button"/><mx:Button label="Flex 3 Button"/>

    這樣就能混合寫出halospark元件了,而使用spark元件最大的好處是可以用MXML 2009標籤去定義它的Skin外觀,這是以前Flex 3所做不到的,這要感謝在Flex 4CS4以後所搞出來的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上去,

     

    最新回复(0)