移动设备、桌面和浏览器应用程序开发的差异

浏览器 
将应用程序部署为 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 图表组件

    可以在移动设备应用程序中使用 AreaChart 和 BarChart 等 MX 图表控件。但它们会影响性能,具体取决于图表数据的规模和类型。

 博客 Nahuel Foronda 编写了有关 ActionScript
中的 Mobile ItemRenderer
 的一系列文章。

 博客 Rich Tretola 为移动设备应用程序编写了一个有关使用
ItemRenderer 创建列表
的手册条目。

【Abode Air程序开发】移动设备、桌面和浏览器应用程序开发的差异的更多相关文章

  1. iOS开发UI篇—简单的浏览器查看程序

    iOS开发UI篇—简单的浏览器查看程序 一.程序实现要求 1.要求 2. 界面分析 (1) 需要读取或修改属性的控件需要设置属性 序号标签 图片 图片描述 左边按钮 右边按钮 (2) 需要监听响应事件 ...

  2. iOS开发UI篇——简单的浏览器查看程序

    一.程序实现要求 1.要求 2. 界面分析 (1) 需要读取或修改属性的控件需要设置属性 序号标签 图片 图片描述 左边按钮 右边按钮 (2) 需要监听响应事件的对象,需要添加监听方法 左边按钮 右边 ...

  3. Android开发中实现桌面小部件

    详细信息请参考原文:Android开发中实现桌面小部件 在Android开发中,有时候我们的App设计的功能比较多的时候,需要根据需要更简洁的为用户提供清晰已用的某些功能的时候,用桌面小部件就是一个很 ...

  4. 浏览器小程序(Browser Applet)闪亮登场

    2017 年 1 月 9 日,微信小程序横空出世.随后,支付宝小程序.今日头条小程序.百度智能小程序.360小程序等纷纷推出,自此国内软件功能扩展领域进入到了小程序时代,小程序为丰富其宿主软件的功能和 ...

  5. Google Chrome浏览器插件入门开发

    --1. 在html文件中引用js 文件 --2.在Google Chrome中开发简单插件 1.首先,简单说明一下在html 中引用js 文件: 将kittenbook.html 和 kittenb ...

  6. 【Abode Air程序开发】在设备上进行安装

    在设备上进行安装 在 Google Android 设备上安装应用程序 在 Apple iOS 设备上安装应用程序 在 Google Android 设备上安装应用程序 在项目的开发.测试和部署阶段, ...

  7. 【Abode Air程序开发】打包并导出

    打包并导出 将移动设备应用程序打包并导出到在线商店 导出用于发行的 Android APK 包 导出用于发行的 Apple iOS 包 使用命令行进行创建.测试和部署 使用 mxmlc 编译手机应用程 ...

  8. 【Abode Air程序开发】Flex air文件打包和运行

    1 安装Adobe AIR 运行时,和java的JVM类似. Adobe AIR 运行时允许在桌面运行AIR应用程序,脱离游览器的束缚. 下载安装文件http://get.adobe.com/cn/a ...

  9. 【Qt开发】【Linux开发】Qt程序在嵌入式设备(arm) 上运行,鼠标擦除界面的解决方案

    笔者最近想在arm开发板上,开发一个应用程序,经过网上查询发现qt作为跨平台开发软件很不错,于是便选择了qt开发,笔者的qt版本是4.8.6的.由于arm的主频太低,在arm上进行开发编译,效率会大大 ...

随机推荐

  1. struts2之多文件上传与拦截器(8)

    前台jsp <s:form action="uploadAction" enctype="multipart/form-data" method=&quo ...

  2. bzoj1497: [NOI2006]最大获利(最小割)

    传送门 第一眼看去:好难 第二眼:不就是个裸的最大权闭合子图么…… 我们从源点向所有用户连边,容量为收益,用户向自己的中转站连边,容量为INF,中转站向汇点连边,容量为费用 那么总收益-最小割就是答案 ...

  3. Qt5 使用lambda

    c11新特性中加入了lambda表达式,所以Qt 也支持 需在.pro文件中加入 CONFIG += c++11 m_timer = new QTimer(); m_timer->start() ...

  4. 关于properties文件的读取(Java/spring/springmvc/springboot)

    一.Java读取properties文件 1.基于ClassLoder读取配置文件 注意:该方式只能读取类路径下的配置文件,有局限但是如果配置文件在类路径下比较方便. Properties prope ...

  5. python中导包简介

    以pycharm中为例 1.创建一个python package,就是创建一个包,注意,创建Directory和创建python package之间的不同,前者只是一个文件夹,不是包,后者是包.包里有 ...

  6. CPU内部结构图

      原文地址:http://blog.csdn.net/jiuyueguang/article/details/9350793

  7. 洛谷P4698 [CEOI2011]Hotel [贪心,二分,并查集]

    题目传送门 Hotel 题目描述 你经营着一家旅馆,这家旅馆有 n 个房间,每个房间有维护费用和容量.其中第 i 个房间的维护费用为 ci​,容量为 pi​ 人. 现在有 m 个订单,每个订单有两个参 ...

  8. luogu P2585 [ZJOI2006]三色二叉树

    P2585 [ZJOI2006]三色二叉树 题目描述 输入输出格式 输入格式: 输入文件名:TRO.IN 输入文件仅有一行,不超过10000个字符,表示一个二叉树序列. 输出格式: 输出文件名:TRO ...

  9. delphi将两个Strlist合并,求交集 (保留相同的)

    Function StrList_Join(StrListA,StrListB:String):String; //将两个Strlist合并,求交集 (保留相同的) var SListA,SListB ...

  10. maven创建可执行jar包项目的配置

    <build> <plugins> <plugin> <artifactId>maven-shade-plugin</artifactId> ...