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

浏览器 
将应用程序部署为 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. 如何在 Google 地图中添加标记和说明

    JS如下: (function() {     window.onload = function() {         // Creating an object literal containin ...

  2. 彩色模型,CIE XYZ,CIE RGB

    学习DIP第8天 转载请标明出处:http://blog.csdn.net/tonyshengtan,欢迎大家转载,发现博客被某些论坛转载后,图像无法正常显示,无法正常表达本人观点,对此表示很不满意. ...

  3. 在windows使用gvim的感受

    用新下载的gvim写几行代码习惯一下,感觉vim用起来要比atom占用的内存少多了,更加的便捷.由于之前一直在用sublime text2,虽然我也很喜欢ST,但我还是抱着膜拜的心态来试了试gvim, ...

  4. mybatis 多级级联(多级嵌套)

    注:笔者这里的嵌套可以用词有点欠缺,忘见谅 需求:用一个查询接口查出其结果集,这里就用伪代码标识要返回前端的类与类之间的关系. class 顶层{ String otherValue; LinkedL ...

  5. Ant环境搭建

    1.上传安装包到linux服务器 2.解压缩 tar zxvf  apache-ant-1.10.1-bin.tar.gz 3.修改环境变量 vim /etc/profile 添加以下内容 expor ...

  6. hdu5492

    hdu5492 陈大哥的毒瘤题T1 题意: 差不多就是根据题意推式子,求最小方差. 解法: 首先,可以观察到,如果我们直接暴力去取平均数,很大概率会取出来小数,所以一个很直观的想法就是把平均数从式子里 ...

  7. mysql 查询相关命令

    1. 结果集按列展示 mysql  -u用户名  -p密码  -D 数据库名 -e  sql语句 示例:mysql   -uroot  -p123456  -D mysql -e select * f ...

  8. 8 HashMap

    1.Map接口 public interface Map<K, V> 将键映射到值的对象,一个映射不能包含重复的键,每个键只能映射到一个值. 具体的实现:HashMap,TreeMap, ...

  9. Resharper错误提示方法的命名

    Resharper-->Options-->C#-->Naming Style

  10. mysql数据库——特殊sql语句整理之修改表结构

    建表 先讲一下常规建表: CREATE TABLE testCreate ( id ) NOT NULL auto_increment, time ) NOT NULL, type ) NOT NUL ...