使用 Flex 可以针对以下部署环境开发应用程序:

浏览器
将应用程序部署为 SWF 文件,以便在运行于浏览器内的 Flash Player 中使用。
桌面
针对桌面计算机(例如 Windows 计算机或 Macintosh)部署独立的 AIR 应用程序。
手机
针对移动设备(例如手机或平板电脑)部署独立的 AIR 应用程序。

Flash Player 运行时与 AIR 运行时类似。在两个运行时中可以执行的操作大部分都相同。除允许在浏览器外部署独立的应用程序之外,AIR 还提供与主机平台的紧密集成。通过这种集成可以实现许多功能,例如访问设备的文件系统、创建和处理本地 SQL 数据库,等等。

设计和开发手机应用程序的注意事项

移动触摸屏设备的应用程序与桌面和浏览器应用程序有以下不同之处:

  • 为了通过触控输入实现简便的操作,手机组件通常具有比桌面或浏览器应用程序中更大的点击区域。

  • 在触摸屏设备上,滚动等操作的交互模式不同。

  • 由于屏幕区域有限,因此手机应用程序通常设计为在屏幕上同时只显示少量的用户界面。

  • 用户界面的设计必须考虑不同设备之间屏幕分辨率的差异。

  • 相较于桌面设备,手机和平板电脑的 CPU 和 GPU 性能更为有限。

  • 由于移动设备上可用内存有限,因此应用程序必须注意节约内存。

  • 手机应用程序可以随时(例如在接听电话或短信时)退出和重新启动。

因此,构建适用于移动设备的应用程序不仅仅是将桌面应用程序缩小为不同的屏幕大小。通过 Flex,您可以针对每个外观因素分别创建适当的用户界面,同时在手机、浏览器和桌面项目之间共享基础模型和数据访问代码。

在手机应用程序中使用 Spark 和 MX 组件的限制

在 Flex 中创建手机应用程序时,将使用 Spark 组件集。Sprak 组件在 spark.components.* 包中定义。但由于性能原因,或者由于并非所有 Spark 组件都具有手机主题外观,手机应用程序并不支持整个 Spark 组件集。

除 MX 图表控件和 MX Spacer 控件外,手机应用程序不支持 mx.* 包中定义的 MX 组件集。

下表列出了在手机应用程序中可以使用、不可以使用或需要谨慎使用的组件:

组件

组件

能否用在手机程序中?

注释

Spark ActionBar

Spark BusyIndicator

Spark TabbedViewNavigator

Spark TabbedViewNavigatorApplication

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。有关这些项呈示器的更多信息,请参阅结合使用手机项呈示器与 Spark 基于列表的控件。

    有关以 ActionScript 创建自定义项呈示器的更多信息,请参阅自定义 Spark 项呈示器。有关手机和桌面项呈示器之间不同点的更多信息,请参阅手机和桌面项呈示器之间的不同点。

  • 使用 ActionScript 和已编译的 FXG 图形或位图开发自定义外观

    Flex 附带的手机外观采用 ActionScript 编写,带有已编译的 FXG 图形,可提供最高的性能。您可以使用 MXML 编写外观,但应用程序的性能可能会有所降低,具体取决于使用 MXML 外观的组件数量。要获得最高的性能,请以 ActionScript 编写外观并使用已编译的 FXG 图形。有关更多信息,请参阅设置 Spark 外观以及 FXG 和 MXML 图形。

  • 使用不依赖文本布局框架 (TLF) 的文本组件

    许多 Spark 文本控件都依赖 TLF。如果在手机应用程序中使用 TLF 控件,会使性能受到影响。有关 TLF 的更多信息,请参阅关于 Sprak 文本控件。

    Spark Label 控件不依赖 TLF。Spark TextInput 和 TextArea 控件具有不依赖 TLF 的手机主题外观。为获得最佳效果,请在应用程序中使用 Label、TextInput 和 TextArea 控件,但在编写自定义项呈示器时不要使用这些控件。在自定义项呈示器中,请使用 StyleableTextField 控件。有关更多信息,请参阅自定义 Spark 项呈示器。

    Spark RichText 和 RichEditableText 依赖 TLF。使用这些控件可以显示丰富的内容,但会影响性能。

  • 在手机应用程序中谨慎使用 MX 图表组件

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

手机、桌面和浏览器应用程序开发的差异相关推荐

  1. 定制你自己的android手机桌面Launcher===一个完成Launcher开发的介绍

    launcher也就是我们的Home,可以简单地把它理解为一个简化的linux GUI.作为一个GUI它首先必须完成它最本分的功能, 就是它必须能提供对所有应用程序(CATEGORY_LAUNCHER ...

  2. 在 WebStorm 中开发 uni-app - 用vue2实现手机APP(apk) + 微信小程序项目开发方案

    主要是跟vue2相关的开发环境与框架. 本人选型方案 结合自身知识系统(vue2,webstorm),综上相关框架了解,选择了以下方案: 开发环境:HBuilder X  + Webstorm 框  ...

  3. python程序开发_用python进行桌面程序开发

    Python是一种面向对象.直译式计算机程序设计语言,也是一种功能强大而完善的通用型语言,已经具有十多年的发展历史,成熟且稳定.这种语言具有非常简捷而清晰的语法特点,适合完成各种高层任务,几乎可以在所 ...

  4. 挑战微信、试探苹果?支付宝小程序可添加到 iOS 手机桌面

    点击上方"CSDN",选择"置顶公众号" 关键时刻,第一时间送达! [CSDN编者按]从微信小程序到快应用,移动互联网正面临着一场重新洗牌.以往的应用分发模式已 ...

  5. 微信小程序怎么添加到主屏幕将微信小程序放到手机桌面?

    微信小程序在一些场景下使用还是非常方便,如果遇到需要经常使用的微信小程序,将该微信小程序添加到手机桌面上,下次直接点击打开将更方便. 例如:草柴微信小程序很多人每天都在用免费领取美团外卖红包优惠券.饿 ...

  6. 百度小程序怎么添加到主屏幕将百度小程序放到手机桌面?

    百度小程序在一些场景下使用还是非常方便,如果遇到需要经常使用的百度小程序,将该百度小程序添加到手机桌面上,下次直接点击打开将更方便. 例如:草柴百度小程序很多人都在用每天免费领取美团外卖红包优惠券.饿 ...

  7. andorid 手机APP应用程序开发介绍

    注意:此处的应用程序是一个app应用程序,而不是我们通常指的移动应用程序. 1.结束比较 本机应用 传统的本机应用程序开发模型中有两个主要系统,即iOS和Android,开发自己的应用程序需要使用每种 ...

  8. android手机应用程序开发,Android手机应用程序开发标准

    模块测试点应用程序apk,屏幕快照和图标,名称,类别,作者,应用程序apk,屏幕快照和图标,名称,类别,作者,完整性适配固件屏幕,功能介绍,授权区域,促销的预期结果配备带有固件屏幕,功能介绍,授权区域 ...

  9. windows桌面程序开发_每个软件开发人员都需要的6个Windows桌面实用程序

    windows桌面程序开发 大多数在Windows上工作的软件开发人员都有相当标准的工具集:代码编辑器或IDE: Git或其他版本控制系统: 消息传递客户端(Slack或其克隆之一),等等. 由于大多 ...

最新文章

  1. 修完 Bug 后脑袋灵光一现 | 每日趣闻
  2. 【深度学习】sigmoid - 二次代价函数 - 交叉熵 - logistic回归 - softmax
  3. [云炬创业基础笔记]第五章创业机会评估测试2
  4. OPenGL中的缓冲区对象
  5. 菜单之一:Menu基础内容
  6. 夏日防晒护肤经验心得与大家分享 - 生活至上,美容至尚!
  7. UI Startup analysis - sap.ui.core.Core what js files are loaded
  8. Android Apk 打包
  9. C4D合集灵感|时尚潮流色彩、搭配梦幻C4D元素设计
  10. f1ag_1s_h3re.php,攻防世界XCTF-WEB-新手练习区(1-3)
  11. 数据挖掘入门到精通—R语言视频教程
  12. springboot中学成绩管理毕业设计源码100854
  13. 实现企业微信机器人自动发消息
  14. NOI题库答案(1.3 编程基础之算术表达式与顺序执行)
  15. SQL Server索引 (原理、存储)聚集索引、非聚集索引、堆 第一篇
  16. python:实现convolve卷积算法(附完整源码)
  17. 你了解眼角膜移植术吗?哪些眼疾需要接受角膜移植呢?
  18. SQL中的COALESCE()函数
  19. HDU 6447 YJJ's Salesman
  20. python3 获取整分钟数的时间,如间隔半小时

热门文章

  1. 整合SQL Server 2012和2014
  2. power bi可视化表_在Power BI报表视图中创建可视化
  3. mercurial和svn_DBA Mercurial简介–处理文件和更改
  4. 每天进步一点点_抽奖程序
  5. 异构计算完全解析-CSDN.NET
  6. archlinux 更新错误 Unrecognized archive format
  7. 浏览器内存泄漏问题的跟踪与解决(转)
  8. hql将指定字段排在最后,然后再根据别的字段排序
  9. iOS一个简单的设置圆角不引起性能问题的分类
  10. 网易有数的“正确”使用方式——洞察数据中隐藏的故事