淺淡FLEX spark組件-容器篇

前臺什麼的做多了,對做FLEX有些排斥,但這樣很不好。既然決定想做遊戲了,那隻能繼續下去。

於是我又裝上了UBUNTU,花了一整天把FLEX SDK和FLEX IN MYECLIPSE給配了起來,總算可以用了,但在這裏,我配的FLEX有些許缺陷:不能在MYECLIPSE中查看文檔,也不能進入圖形編輯界面。但是這樣卻挺適合我的,哈哈~

 

最近把事情都推掉了,於是好好學習,以下是我這幾天應用FLEX組件,對這些組件的認識。

在這裏,我把spark組件分爲兩類:容器與應用組件。

容器是容納各種組件的組件,有Application(Windows),BorderContainer,DataGroup,Panel,TitleWindows,Group中還擴展出HGroup與VGroup,而應用組件是完成各種功能的組件,有Button,ButtonBar,ButtonBarButton,CheckBox,ComboBox,DropDownList,List,RadioButton,TextArea等等。

 

一、Application

        Application(Windows)是每個FLEX網頁(AIR)必有的一個容器(至少我看到的FLEX應用都是如此),在程序進入第2幀,主程序Application開始運行後,會按照如下流程執行應用:

1. 實例化Application對象

2. 初始化Application.systemManager

3. Application在初始化過程之前, 派發預初始化事件.

4. 調用createChild(). 此時, 所有應用組件被創建, 所有組件的createChild()被調用.

5. Application派發初始化事件, 表明所有的組件初始化完畢.

6. 派發creationComplete事件

7. Application對象添加到顯示列表中

8. 派發applicationComplete事件

SystemManager是Flex應用的主控者, 它控制着應用窗口, Application實例, 彈出窗口, cursors, 並管理着ApplicationDomain中的類. SystemManager是FlashPlayer實例化的第一個類, 它存儲了主應用窗口的大小和位置信息, 保存其子組件比如:浮動彈出窗口和模態窗口的痕跡. 通過SystemManager可以獲得內嵌字體,樣式和document對象.

 

二、BorderContainer

       BorderContainer是個很神奇的東西,當我起初看到這個容器的時候,我有種不知道該怎麼下手的感覺。

       它就一邊框,我們可以通過定義屬性來控制邊框的角的圓滑度,邊框的粗細,顏色,容器內的填充顏色等等。讓我有點鬱悶的原因是因爲看到這個容器的時候卻想不到這東西可以用在哪,感覺沒有存在的必要(奇怪了,爲什麼我會 這麼覺得呢?)。

但仔細一想,其實BorderContainer的用到的地方挺多的。比如說用FLEX做一個網站型的應用,在佈局排版中給一塊內容部加上邊框。說白了,其實它就相當於CSS中的border屬性,不過與CSS中的不同的就是,CSS是給一個自定的區域自定義加上邊框,而BorderContainer直接上邊框(這不一樣麼,坑爹呢都)。

 

三、Panel與TitleWindow

    Panel是我學FLEX以來接觸最多的容器了,原因有二,外觀不錯,很合我口味,而且很實用。但這裏主要講TitleWindow(因爲TitleWindow包含了Panel的特性)。

    TitleWindow是Panel的擴展組件,它比TitleWindow多了一個關閉按鈕,在mx.managers這個包中有個PopUpManager,可以直接去操作TitleWindow的打開與關閉,下面是FLEX API中的一個例子:

SimpleTitleWindowExample.mxml

TitleWindowApp.mxml


在這個程序裏,SimpleTitleWindowExample.mxml是自定的TitleWindows窗口,

在TitleWindowApp.mxml中的居中的Panel組件中有個myButton,

點擊後通過點擊myButton,調用PopUpManager類中的createPopUp方法創建了一個自定的TitleWindow : SimpleTitleWindowExample。

然後通過偵聽SimpleTitleWindowExample的關閉按鈕關閉SimpleTitleWindowExample。

 

四、Group與HGroup、VGroup、TileGroup

       Group 類是可視元素的容器基類。Group 容器將實現 IUIComponent 接口的任何組件和實現 IGraphicElement 接口的任何組件視爲子代。希望管理可視子項(可視組件和圖形組件)時,使用此容器。      這是在FLEX API中對Group的定義。

Group相對於VBox,HBox,Grids來說,是輕量級的容器,它不能設置外觀,可以容納可視化的組件。

HGroup 容器是使用 HorizontalLayout 類的 Grou
p 容器的一個實例,

VGroup 容器是使用 VerticalLayout 類的 Group 容器的一個實例,

TileGroup 容器是使用 TileLayout 類的 Group 容器的一個實例.

於是,HGroup,VGroup可以不用添加layout 屬性,就可以改變Group容器中的排版形式。

 

五、DataGroup

        DataGroup 類是數據項目的容器基類。DataGroup 類將數據項目轉換爲可視元素以進行顯示。儘管此容器可以包含可視元素,但它通常僅用於包含作爲子項的數據項目。

       DataGroup可以通過dataProvider向內添加內容,

 

容器部分差不多了。嗯。就這樣。


發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章