天天看點

【Abode Air程式開發】移動裝置、桌面和浏覽器應用程式開發的差異

移動裝置、桌面和浏覽器應用程式開發的差異

  • 在移動裝置應用程式中使用

    Spark 和 MX 元件的限制

  • 移動裝置應用程式在性能方面的注意事項
浏覽器 
将應用程式部署為 SWF 檔案,以用于在浏覽器中運作的 Flash Player。
桌面 
為桌面計算機(例如 Windows 計算機或 Macintosh)部署獨立的 Adobe AIR 應用程式。
移動裝置 
為移動裝置(例如手機或平闆電腦)部署獨立的 Adobe AIR 應用程式。
Flash Player 運作時與 Adobe AIR 運作時類似。在兩個運作時中可以執行的操作大部分都相同。除了允許在浏覽器外部署獨立的應用程式之外,Adobe AIR 還提供了與主機平台的緊密內建。通過這種內建可以實作許多功能,例如通路裝置的檔案系統、建立和處理本地 SQL 資料庫,等等。

在移動裝置應用程式中使用 Spark 和 MX 元件的限制

在 Flex 中建立移動裝置應用程式時,将使用 Spark 元件集。Spark 元件是在 spark.components.* 包中定義的。但由于性能原因,或者由于并非所有 Spark 元件都具有移動裝置主題外觀,移動裝置應用程式并不支援整個 Spark 元件集。

除 MX 圖表控件和 MX Spacer 控件外,移動裝置應用程式不支援在 mx.* 包中定義的 MX 元件集。

下表列出了在移動裝置應用程式中可以使用、不可以使用或需要謹慎使用的元件:

元件 能否用在移動裝置程式中? 說明

Spark ActionBar

Spark BusyIndicator

Spark Callout

Spark CalloutButton

Spark DateSpinner

Spark SpinnerList

Spark SpinnerListContainer

Spark TabbedViewNavigator

Spark TabbedViewNavigatorApplication

Spark ToggleSwitch

Spark View

Spark ViewMenu

Spark ViewNavigator

Spark ViewNavigatorApplication

這些新元件支援移動裝置應用程式。

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

這些元件大部分都具有移動裝置主題外觀。盡管 Label、Image 和 BitmapImage 不具有移動裝置外觀,但也可以使用。

某些 Spark 布局容器(例如 Group 及其子類)不具有外觀。是以,可以在移動裝置應用程式中使用這些元件。

其他 Spark Skinnable 元件 建議不要使用 除上面列出的元件外,建議不要使用其它 Skinnable Spark 元件,因為這些元件不具有适用于移動裝置主題的外觀。如果元件不具有移動裝置主題外觀,您可以為應用程式建立一個外觀。
Spark DataGrid

Spark RichEditableText

Spark RichText

出于性能考慮,建議不要使用這些元件。盡管這些元件可以用在移動裝置應用程式中,但這樣做會影響性能。

對于 DataGrid 控件,性能取決于呈示的資料量。對于 RichEditableText 和 RichText 控件,性能取決于文本量及應用程式中的控件數量。

除 Spacer 和圖表以外的 MX 元件 移動裝置應用程式不支援 MX Button、CheckBox、List、DataGrid 等 MX 元件。這些元件對應于 mx.controls.* 和 mx.containers.* 包中定義的 Flex 3 元件。
MX Spacer Spacer 不使用外觀,是以可以用在移動裝置應用程式中。
MX 圖表元件 是,但存在性能隐患

可以在移動裝置應用程式中使用 AreaChart 和 BarChart 等 MX 圖表控件。MX 圖表控件位于 mx.charts.* 包中。

但這會導緻移動裝置無法達到最佳性能,具體取決于圖表資料的規模和類型。

預設情況下,Flash Builder 的移動裝置項目庫路徑中不包含 MX 元件。要在應用程式中使用 MX 圖表元件,請在庫路徑中添加 mx.swc 和 charts.swc。

移動裝置應用程式不支援以下 Flex 功能:
  • 不支援拖放操作
  • 不支援 ToolTip 控件
  • 不支援 RSL

由于移動裝置在性能方面的局限性,移動裝置應用程式的某些開發環節與浏覽器和桌面應用程式的開發不同。下面是一些性能方面的注意事項:
  • 以 ActionScript 編寫項呈示器

    開發移動裝置應用程式時,您希望使清單滾動具有盡可能高的性能。以 ActionScript 編寫項呈示器可以獲得最高的性能。盡管您可以使用 MXML 編寫項呈示器,但這樣可能會降低應用程式的性能。

    Flex 提供兩個項呈示器,且已優化為适合在移動裝置應用程式中使用:spark.components.LabelItemRenderer 和 spark.components.IconItemRenderer。有關這些項呈示器的更多資訊,請參閱 Using

    a mobile item renderer with a Spark list-based control。

    有關以 ActionScript 建立自定義項呈示器的更多資訊,請參閱 Custom Spark item renderers。有關移動裝置和桌面項呈示器之間不同點的更多資訊,請參閱 Differences

    between mobile and desktop item renderers。

  • 使用 ActionScript 和已編譯的 FXG 圖形或位圖開發自定義外觀

    Flex 4.6 附帶的移動裝置外觀采用帶有已編譯 FXG 圖形的 ActionScript 編寫,可提供最高的性能。您可以使用 MXML 編寫外觀,但應用程式的性能可能會有所降低,具體取決于使用 MXML 外觀的元件數量。要獲得最高的性能,請以 ActionScript 編寫外觀并使用已編譯的 FXG 圖形。有關更多資訊,請參閱 Spark

    Skinning 和 FXG and MXML graphics。

  • 利用使用 StageText 的文本輸入元件

    添加 TextInput 和 TextArea 之類的文本輸入元件時,請使用預設值。這些控件将 StageText 用做文本輸入的基礎機制,這種機制會挂接到本機文本輸入類。這提高了性能,并允許您使用自動糾正、自動大寫、文本限制和自定義軟鍵盤等本機功能。

    使用 StageText 也有一些缺點,如不能滾動控件所在的視圖等。另外,也不能使用嵌入字型,不能對基于 StageText 的控件使用自定義大小調整。如有必要,可以使用基于 TextField 類的文本輸入控件。

  • 在移動裝置應用程式中謹慎使用 MX 圖表元件

繼續閱讀