2011年8月30日

Flex in Mobile(第一篇、有何不同)


本文章將一系列的介紹關於Flex4.5版本之後所支援的Mobile專案與一般網頁專案之差別,以及在撰寫必須注意的事項,並且在文章的後半部會對mobile新功能做一些入門的介紹。


一、          Mobile與網頁、桌面版本的差異
平台
內容
網頁
使用瀏覽器的FlahPlayer運行SWF檔案
桌面
使用標準的AIR運行在電腦
行動裝置
使用標準的AIR運行在手機或平板

1.      因為螢幕大小受到限制,通常會將應用程式在一個時間只有一個畫面,必須將程式設計很多個畫面來操作。
2.      不管在平板或是手機 CPU GPU 效能是有限的。
3.      使用者介面可能在不同解析度或是不同平台使用。
4.      因為記憶體有限,所以必須很小心的使用元件的使用及創建。

基於以上幾點,在建立Mobile程式的時就不是簡單的將解析度降低成不同解析度這樣而已。

二、          Mobile元件使用表
Component
Component
Use in mobile?
Spark ActionBar
Spark BusyIndicator
Spark TabbedViewNavigator
Spark TabbedViewNavigatorApplication
Spark View
Spark ViewMenu
Spark ViewNavigator
Spark ViewNavigatorApplication
Yes
Spark Button
Spark CheckBox
Spark DataGroup
Spark Group/HGroup/VGroup/TileGroup
Spark Image/BitmapImage
Spark Label
Spark List
Spark RadioButton/RadioButtonGroup
Spark SkinnableContainer
Spark Scroller
Spark TextArea
Spark TextInput
Yes
Other Spark skinnable components

Discouraged
Spark DataGrid
Spark RichEditableText
Spark RichText
Discouraged
MX components other than Spacer and charts

No
MX Spacer

Yes
MX chart components

Yes, but with performance implications

三、          Mobile為我們準備一定可以使用的元件
Controls
BusyIndicator (new component)
Button
ButtonBar
CheckBox
HSlider
Image (BitmapImage is also supported)
Label
List (supports touch scrolling, includes scroll indicator)
RadioButton / RadioButtonGroup
TextArea
TextInput
Layout
DataGroup
Group
HGroup
Scroller (supports touch scrolling, includes scroll indicator)
Spacer
TileGroup
VGroup
Charts
All

四、          Mobile為我們準備一定可以使用的元件
    在移動設備中皮膚(skin)不直接的支援MXML格式。在普通的Web專案中,我們可以為元件創建MXML皮膚,這樣的好處是快速方便,而且可以使用MXML圖形為我們省很多事,壞處就是因為MXML元件結構的複雜性,在移動設備上容易引發性能問題。所以對於移動專案,建議只能使用ActionScript為元件創建皮膚。

    在圖片使用上片,盡量的使用點陣圖,如果真的要使用類別的向量圖也盡量使用原生的FXG向量圖,為什麼不要使用向量圖呢?這是因為在移動設備上,記憶體與處理器都是受限制的,我們因該減少執行時渲染計算。

    因此我們必須自己為我們的移動設備自定義皮膚(Skin),這在後面的[自定義Mobile皮膚]一篇中會提到。

沒有留言:

ShareThis