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

浏览器 
将应用程序部署为 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. windows下常用cmd命令

    CMD命令:开始->运行->键入cmd或command(在命令行里可以看到系统版本.文件系统版本)1. appwiz.cpl:程序和功能 2. calc:启动计算器 3. certmgr. ...

  2. 洛谷P1372 又是毕业季I【数论】

    题目:https://www.luogu.org/problemnew/show/P1372 题意: 在1~n之中找k个数,使得他们的最大公因数最大. 思路: 假设ans是答案,说明选择的k个数分别是 ...

  3. one(type,[data],fn) 为每一个匹配元素的特定事件(像click)绑定一个一次性的事件处理函数。

    one(type,[data],fn) 概述 为每一个匹配元素的特定事件(像click)绑定一个一次性的事件处理函数. 在每个对象上,这个事件处理函数只会被执行一次.其他规则与bind()函数相同.这 ...

  4. @WebServlet @WebListener @WebListener

  5. JVM(十二),垃圾回收面试题

    十二.垃圾回收面试题 1.Object的finalize()方法 2.Java中的强软弱虚四种引用 (1)强引用 (2)软引用(间接引用) (3)弱引用 (4)虚引用 (5)四种引用区别

  6. free 内存检测

    free打印出的内存信息主要分为两种,一种是安装的内存,一种是用磁盘虚拟的内存,就是这里的Swap,相信装过Linux系统的同学肯定不陌生交换分区,这里Swap大小就是我们分区的时候分配的大小. 下面 ...

  7. iOS (APP)进程间8中常用通信方式总结

    1 URL Scheme 2 Keychain 3 UIPasteboard 4 UIDocumentInteractionController 5 local socket 6 AirDrop 7 ...

  8. ES6中的模板字符串使用方法

    传统的 JavaScript 语言,输出模板通常是这样写的. $('#result').append( 'There are <b>' + basket.count + '</b&g ...

  9. Flutter移动电商实战 --(1)项目学习记录

    1.项目相关截图 2.项目知识点梳理图 Dio2.0: Dio是一个强大的 Dart Http 请求库,支持 Restful API.FormData.拦截器.请求取消等操作. Swiper: Swi ...

  10. Twisted框架学习

    Twisted是用Python实现的基于事件驱动的网络引擎框架,是python中一个强大的异步IO库.理解twisted的一个前提是弄清楚twisted中几个核心的概念: reactor, Proto ...