在本月 21 日举行的 QClub 北京活动上,来自 Adobe 的曹金明和 RIAMeeting 的郭少瑞与现场的一百多位技术人员,分别讨论了 Flex 4 SDK 的新特性,和 AIR 中的几个实用功能。
在以前 InfoQ 发布的几篇对 Flex 和 Flash 的介绍中,如《 Flex 4 的十大变化》、《 Flash Builder 4 beta 中五个重要的新特性》和《使用 Flash Builder 4 beta 进行以数据为中心的开发》等,已经详细介绍了在 Flex 4 和 Flash Builder 最新版本中所增加的新特性。在活动现场,曹金明结合实例对这些新特性做了更形象的介绍,尤其是 MXML 2009、FXG 和 Spark 组件体系等:
- MXML 2009:MXML 2009 包含了大量更新以对不同的行为(核心、皮肤和布局)进行解耦,同时还提供了新的组件库。为使 Flex 4 的组件能够在其自己的包中(spark.components)得以实现,同时又不对 Flex 3 的组件进行任何变更,MXML 2009 专门提供了一个新的命名空间。
- FXG 支持:Adobe 在 Flash Player 10 中引入了 FXG,现在又将其引入到了 Flex 中。FXG 是个声明式的图形格式,可以在工具间传递内容,这意味着设计者可以在 Catalyst 或 CS4 Illustrator 中创建内容,接下来 Flex 应用开发者就可以将其导入并使用而无需修改任何内容。
- Spark 组件架构:Flex 4 的底层组件架构名为 Spark,而在 Flex 3 中则叫做 Halo。为了支持 Catalyst,Flex 4 更新了底层的组件模型以达到松耦合的目的。在新的 Spark 组件模型中,核心逻辑、皮肤以及布局都被分开了,这样我们就能单独处理其中任意一部分而又不会影响到其他部分。Spark 组件模型构建于 Halo 组件模型之上,这意味着 Spark 扩展了 Halo 的核心基类 UIComponent,这样我们就能以增量的方式使用 Flex 4,同时还能将 Flex 3 组件应用在 Flex 4 应用中。
在 12 月 2 日广州举行的奥多比开发者技术日上(现在依然可以报名),众多来自Adobe 和社区的专家将会与与会者继续分享RIA 开发相关的话题,比如Flash 平台最新动态、RIA 和开放平台、Spring ActionScript 与Cairngorm 框架的结合开发技巧等。
《 Adobe AIR 完整入门与开发实录》作者郭少瑞主要是结合实践介绍了 AIR 中的几个实用功能,比如桌面拖拽、本地数据库、本地文件系统、安装方式和在线更新等:
- 桌面拖拽:拖拽这种在操作系统以及桌面软件中已经司空见惯的交互形式,却成了 Web 应用难以逾越的鸿沟,虽然不管是 Ajax 还是 Flex 都有内部对于拖拽的实现,但与本地文件系统之间由于浏览器的安全限制,无法实现拖拽的操作。这一点到了 AIR 里面就不是问题了,AIR 本身就运行于桌面端,具备操作系统登录用户的权限,当然也就包括对本地文件系统的访问,基于 AIR 所提供的 API,我们可以使用拖拽的方式将应用与本地文件系统联系起来,像常见的拖拽打开文件,导出文件等等都可以实现。
- 本地数据库:离线存储也是 Web 应用难以实现的一个方面,而 AIR 则提供了两种存储方式:文件存储和本地数据库。本地数据库实际上就是 SQLite,AIR 运行时内置了这个小型数据库,使用它来完成一些数据的存储工作基本够用了。
- 本地文件系统:AIR 提供一系列 API 以支持本地文件系统的操作,包括文件的增删改,目录的创建与删除等等,这样无论我们是希望使用文件存储系统数据,还是导出用户所需的数据格式到一个文件,AIR 都可以满足这些需求。
- 安装方式:在应用的部署和安装上,AIR 也是独具特色,可以说即具备桌面软件的特性(本地集成安装包,发放给用户,双击安装包完成安装),也具备 WEB 应用快速部署的优势(在线的集成无缝安装),我们将分别探讨一下这两种方式。
- 在线更新:软件不可能是一成不变的,当你的软件发布之后,很可能接下来面对的问题就是升级和更新的问题,如果设计的时候没考虑到这个因素,那你的麻烦就大了,AIR 也提供了一些版本判断和更新的机制,使用它可以非常方便的实现在线的软件更新。
在 RIAMeeting 网站上,郭少瑞已经公布了现场演讲的 PPT 和示例源代码,感兴趣的读者可以移步浏览。本次活动照片为 QClub Beijing - Flickr ,随后 InfoQ 将发布本次 QClub 活动的视频。本次活动相关技术的软件,InfoQ 已经独家提供下载: Flex 4 SDK 和 Flash Builder 4 Beta 2 等!
评论