引入 Adobe Flex 4.5 SDK
所需 Adobe 产品
Adobe Flash Builder 4.5 (包括 Adobe Flex 4.5 SDK )
注: 目前 在 Adobe Labs 上可下载早期的预览版本 — 最新版本的 Flash Builder 4.5 和 Flex 4.5 SDK 将于 5 月初提供下载。
注 : Flash Builder 4.5 为针对 Google Android 建立的 Flex 和 ActionScript 应用提供支持 , 并为针对 BlackBerry Tablet OS 和 Apple iOS 建立的 ActionScript 应用提供支持。 Flash Builder 4.5 和 Flex 4.5 计划于 2011 年 6 月进行更新 , 届时将添加对针对 BlackBerry Tablet OS 和 Apple iOS 而建立的 Flex 应用提供支持。
Flex 的最新版本 Flex 4.5 SDK 将向前跨越一大步。 Flex 4.5 SDK 发布了许多令人振奋的新组件和功能 , 并且对 Flash Builder 4.5 和 Flash Catalyst CS 5.5 提供集成支持功能。通过 Adobe Flex 4.5 SDK 版本 , 我们引入三个主要创新功能 :
· 支持开发人员使用 Flex 进行多屏幕应用程序开发
· 进一步完善在 Flex 4 中引入的 Spark 架构和组件
· 不断改善核心 Flex 基础环境以便于大型应用程序的开发
本文的目的是为你引入 Flex 4.5 SDK 版本的大量新功能 , 并且为你提供附加资源和文档 , 以便你可以充分利用 Flex 4.5 框架开始创建应用程序。
利用 Flex 4.5 SDK 进行多屏幕开发
由于 Flex 4.5 版本直接将多屏幕应用程序开发引入到核心 Flex 框架中 , 因此 Flex 的开发功能将向前跨越一大步。使用 Flex 4.5 SDK 你可以充分利用你的现有知识和技巧来开发移动应用程序,方法是使用经过移动优化的组件(基于 Spark )和使用封装公共移动设计模式的应用程序级别的构造。如需了解关于 Flex 框架添加的新移动功能和 Flash Builder 添加的新移动工作流的更多信息 , 请阅读 NJ 的文章使用 Flex 4.5 SDK 和 Flash Builder 4.5 进行移动应用程序开发 (Mobile development using Flex 4.5 SDK and Flash Builder 4.5) 。
Flex 4.5 SDK 的新 Spark 组件
Flex 4.5 版本添加了 Spark 组件 , 而 Flex 4 版本没有包含这类组件。在 Flex 4.5 中添加的新 Spark 组件的目的是为了减少引起 MX 和 Spark 组件混用的最常见现象。新的 Spark 组件列表包括: Spark DataGrid 、 Form, Image 、 Module 、 Busy Indicator 、 SkinnablePopUpContainer 、 Date/Time 、 Number 和 Currency Formatters 以及 Number 和 Currency Validators 。下面我们将更详细地讨论这些新组件和它们的功能。
Spark DataGrid
最令人振奋的一个新 Spark 组件是 Spark DataGrid ( 参见图 1 ) 。 Spark DataGrid 具有两个主要目标 :
· 通过丰富的 Spark 皮肤协议 (skinning contract) , 确保定制简单明了、栩栩如生
· 改善渲染、滚动和互动性能使得它们优于 MX DataGrid
图 1. 一个显示栏标题的 Spark DataGrid 。这是一个主表区域 , 能够支持标准和可变的行高度和可植皮的视图 , 该视图能够控制选择 (selection) 、悬浮 (hover) 、加字记号 (caret) 、行背景 (row background) 和栏分隔符图形等。
Spark DataGrid 的突出功能包括 : 皮肤协议允许通过 DataGrid 皮肤文件 ( 包括单元格和栏标题 ) 声明定制 DataGrid 的子部件 , 根据固定和可变的行大小进行数据源动态更改的完整支持 , DataGrid 显示栏标题和表区域之间的高级通信 ( 包括栏排序、数据值格式化和栏大小调整 ), 以及完全的选择支持功能。与 MX DataGrid 一样,还支持单行和多行选择功能(连续和非连续选择均支持 )。此外,Spark DataGrid 允许用户选择个体单元格或多个单元格作为默认选择行为的一部分。 Spark DataGrid 还允许通过键盘或鼠标支持基本用户浏览功能,可完全使用。 Spark DataGrid 的一些高级功能包括完全支持单元格编辑以及性能优化,因此 Spark DataGrid 在启动时间、水平滚动和垂直滚动方面优于 MX DataGrid 。
如需了解关于新的 DataGrid 及其所有工具的更多详细信息 , 请参见 Spark DataGrid > 描述。 Spark DataGrid 的可用特性在单独的描述中进行说明。
Spark Form
Spark Form 容器不仅增加许多与 MX Form 相同的功能 , 而且还增加若干满足更多现代表单设计要求的增强功能。 Spark Form 对 MX Form 的最大改进之处在于其布局的成熟性。 Spark Form 使用基于栅格的限制布局功能对每个 FormItem 元素进行定位。此外,该布局方式支持对表单的栏和行进行动态变更。表单的栏和行在运行时能够变大和缩小,以满足现代表单设计需求,如此帮助文本或验证错误等信息能够及时显示。Spark Form 向市场推出两种布局,一种是默认布局,它是表单条目的水平布局(参见图2);另一种是叠加布局,它垂直安排表单条目(参见图3)。两种布局均支持用像素大小和百分比大小定义表单的栏。
图 2. 使用默认水平布局的 Spark Form 。基于约束的栏支持更多灵活布局方式。
图 3. 使用 StackedFormItem 皮肤的 Spark Form , 它以垂直方式对表单条目进行布局。
Spark Form 能够提供配置选项 , 这些选项可以用于将表单条目内容沿着公共基线进行对齐、根据要求对表单条目进行标记以及按顺序列出表单条目。所有这些配置均可以通过 Form 的皮肤协议进行定制。因此,当一个需要的表单条目遗漏或一个表单条目处于无效状态时,通过修改 Form 或 FormItem 的皮肤能够以声明的方式定制 Form 的状态。你可以通过阅读 Flex 开源网站的功能描述,了解关于新 Spark Form 容器的更多信息。
如需了解关于 Form 及其 API 的更多信息 , 请参见 Spark Form 描述 ( 点击这里 ) 。
Spark Image 和 BitmapImage 增强功能
Flex 4 引入了 BitmapImage 的图形元素。这是一个轻量级、不可植皮的 UI 元素 , 它可以用于显示图像内容。在 Flex 4.5 中,我们改进了 BitmapImage 图形元素,并且添加了一个新的 Spark Image 组件。
BitmapImage 的增强功能
BitmapImage 功能已经得到改进 , 它能够支持装载和显示不可信和可信的远程图像 ( 当上载不可信图像时 , 正常的 Flash Player 安全限制功能将启用 ) 。此外,BitmapImage引入了新的缩放支持功能。可以对新引入的‘scaleMode’属性进行配置,以便扩展图像、填充内容区或以类似宽银幕方式(letterbox mode)显示内容。宽银幕方式支持利用与原来未缩放的图像相同的屏幕高宽比显示图像内容。此外,BitmapImage 还增加了一个‘smoothingQuality’属性,它可以用于配置当‘smooth’属性打开时使用的图像平滑算法 (image smoothing algorithm)。在默认情形下,根据 stage 质量可以缩放图像。如果‘smoothingQuality’设置为high,则使用多步长缩放算法 (multi-step scale algorithm),该缩放能够获得比使用默认的 stage 质量更好的显示质量。该‘smoothingQuality’选项适用于高质量的缩略图显示 (thumbnail presentation)。最后, Flex 4.5 的 BitmapImage 功能引入一个内容高速缓冲存储器,通过对它进行配置可以支持对远程图像数据进行缓存和排队。在快速显示和隐藏图像的情形下,这类高速缓冲存储器能够方便地显示图像而不会出现闪烁情况,例如,在 List 组件中滚动图像缩略图。内容高速缓冲存储器能够与 BitmapImage 实例进行关联,并且通过配置可以管理高速缓冲存储器的空间大小以及控制其无效和存储行为。通过修改配置选项,还可以对上载的图像按照优先级顺序进行排队。通过添加内容高速缓冲存储器和排队机制,利用 Flex 4.5 创建的应用程序的图像可以获得更佳的感知性能。
引入 Spark Image
新的 Spark Image 可植皮组件是在功能改进的 BitmapImage 元素基础之上创建的。因此,所有 BitmapImage 元素具有的增强功能,例如缩放、平滑、高速缓存和排队机制等,Image组件同样具有。Spark Image 的皮肤协议在图像数据装载时支持定制图像的显示方式,例如显示装载何时完成、图像数据何时处于无效状态、以及当图像数据无法获得时图像的中断状态(参见图4)。你可以通过阅读功能描述(点击这里),了解关于 BitmapImage 增强功能和新的 Spark Image 可植皮组件的更多信息。
图 4. 四个 Spark Image 组件。第一个组件定制视图显示方式 , 第二个组件定制装载状态显示方式 , 第三个组件显示载入图像状态 , 而第四个组件在图像数据无法获得时显示图像的中断状态。
Spark 格式器
Flash Player 10.1 引入了一组新的全局 API , 这些 API 能够提供与地区相关的日期、时间、数字和货币的格式。基于这些 API, Flex 4.5 版本为 Spark 命名空间添加了一组新的格式器。这些格式器能够基于操作系统定义的地区格式数据,因此自然能够为应用程序内容提供与地区相关的行为。
Flash Player 10.1 API 提供的功能可以由操作系统定义的地区的要求来驱动。 Flex 4.5 版本能够提供 3 个格式器,它们可以充分利用地区信息进行正确的格式化操作。这些格式器的名称是 CurrencyFormatter、NumberFormatter 和 DateTimeFormatter (参见图5)。你可以通过阅读 Flex 4.5 开源网站的 Spark Formatters 描述了解关于新引入的格式器使用的属性、方法和事件的更多信息。
图 5. 应用于一个 DataGrid 栏的 Date 、 Number 和 Currency 格式器。可以动态设置地区,本例显示数据的地区为法国。
此外 , 新版本添加了 Sort 和 SortField 类 , 这些类增添了与地区相关的排序功能。通过深入了解,我们发现新的 Sort 类能够充分利用 Flash Player 10.1的地区相关的字符串比较功能、数字和货币分析功能以及大小写字符串转换功能,根据相关地区定义的语言规则来处理字符和数字的排序操作。如需了解 Flex 4.5 中新引入的排序和校对功能的更多信息,请参见此描述。
Spark 验证器
除了新的 Spark 格式器之外 , 还添加了使用 Flash Player 10.1 全局 API 的 Number 和 Currency 验证器。新的 NumberValidator 和 CurrencyValidator 级别目前根据操作系统定义的地区进行验证。这一添加功能的益处有多个,包括可以验证正、负数字格式,而且此应用程序中自动集成了非欧洲数字和操作系统对新地区更新和对各地区更改的许可功能。如需了解关于新的 Spark 验证器的更多信息,请参见此 描述 。
其它新的 Spark 组件与功能
除了上面列出的 Spark 组件之外 , Flex 4.5 还添加了新的组建和功能。包括可以指定 Spark TextInput 、 TextArea 和 ComboBox 控件中的文本提示,以用于移动和桌面应用。此 迷你描述 覆盖了 Spark 中文本提示的所有细节。此外,移动应用中还添加了新的 Busy Indicator 组件,该组件可用于进行可视提示,如某个应用程序正处于网络呼叫或长时间运行计算的操作中。如需阅读更多关于 Busy Indicator 的信息,请参见此 描述 。
两个值得一提的新的可植皮组件是 Spark Module 和 Spark SkinnablePopUpContainer 控件。 Spark Module 通常配合新的 Spark ModuleLoader 控件使用,是一种用于创建模块的可植皮容器。在创建导航器视图或在单个应用程序内带入独立的 UI 模块时,通常需要使用模块。如需了解更多关于 Spark Module 和 ModuleLoader 组件的信息,请阅读此 描述 。 Spark SkinnablePopUpContainer 是一种新的可植皮控件,可用于定制弹出窗口的动画弹出、拆除和数据显示,如警示或对话控件,以用于移动和非移动应用程序。状态可用于控制弹出窗口打开或关闭的时间,皮肤可基于状态变化进行可视更新。关于如何对 SkinnablePopUpContainer 进行声明和植皮的信息,请查阅此参考 描述 。
Adobe Flex 4.5 SDK 的视频和文本增强功能
Flex 4 框架已经将开源媒体框架 (OSMF) 作为 Spark VideoPlayer 组件的基础组件进行了集成。此外,Flex 4 框架已经将文本布局框架 (TLF) 作为可以在所有 Spark 文本组件中使用的基础文本库进行集成。
OSMF 和 Flex 4.5 SDK
Flex 4.5 的 OSMF 库已经升级支持 OSMF 1.0 。 Flex 4.5 Spark VideoPlayer 组件已经使用 OSMF 1.0 媒体播放器。OSMF 1.0的集成版本可以提供许多重要的软件故障更改程序并且增加了对HTTP媒体流的支持功能。这意味着如果开发人员和设计人员创建支持 HTTP 媒体流的视频内容,则 Spark VideoPlayer 组件能够显示这些类型的媒体流。使用这一功能非常简单,只需将 VideoPlayer 的‘source’属性设置为支持 HTTP 媒体流的 URL 即可。你可以通过阅读此 描述 了解更过关于 Flex 4.5 中的 OSMF 1.0 内容信息。
TLF 和 Flex 4.5 SDK
Flex 4.5 版本包括对下一版本 TLF 库 TLF 2.0 的支持功能。 TLF 是一种基础文本引擎 , 它可以用于所有的 Spark 文本组件 , 其中包括 TextInput 、 TextArea 、 RichText 和 RichEditableText 。下一版本 TLF 将重点改善 Flex 应用程序的文本性能并且增加一些新功能,例如带有项目符号和编号的列表功能等。重要的是 , TLF 2.0 整合了几个关键的性能修复 , 如 Spark 文本控件的显示、滚动以及与大量文本的互动操作。某些已经解决的性能问题主要围绕 Spark 文本控件显示、滚动以及与大量文本的互动操作。关于 Flex 4.5 的 TLF 2.0 集成版本的更多信息,请参见此 描述 。
Adobe Flex 4.5 SDK 编译增强功能
不断改善 Flex 编译器是其每个版本的一个重大任务。在 Flex 4.5 版本开发过程中,我们主要侧重以下三个方面的功能增强:
· 减少整个版本的内存占用
· 减少整个版本和递增版本的编译时间
· 改善编译器的 RSL 链接逻辑
Flex 4.5 版本可以展示在这三个方面的增强功能。通过最新的优化措施,中型和大型项目在整个编译过程中总体内存占用量能够减少高达20%,并且整个版本和递增版本的编译时间能够减少高达20%。
RSL 增强功能
RSL ( 运行时共享库 ) 可以将 Flex 框架打包到在应用程序启动期间链接和载入的库中。Flex 4 默认打开 Flex 框架RSL,也就是说,Flex 编译器可以链接 Flex 应用程序使用的框架 RSL。
Flex 4.5 版本为 Flex 的 RSL 基础程序增加了一些令人非常振奋的增强功能。利用 Flex 4.5 编译器,只有那些对应用程序代码具有真正依赖性的 RSL 才被链接到你的应用程序。例如,没有使用 OSMF 的应用程序将不需要链接和载入 OSMF RSL。此外, 纯Spark 或纯 MX 项目能够确保只在特定类型的项目需要的组件和架构部件中进行链接。对 Flex 编译器及其 RSL 的链接的增强功能请参见此 描述 。
此外 , 在 Flex 4.5 中 , 模块和其 RSL 链接逻辑也得到了改进。现在,模块能够知道何时其父应用程序或其同属模块已经载入其依赖的 RSL。在上述类似情形下,该模块将会避免在要求的 RSL 中进行重新链接和装载。系统中具有开发人员可以使用的编译器配置选项,以便当某些模块不希望编译器自己内查和确定依赖性时在这些模块中进行强迫链接。因此, Flex 4.5 在其子应用程序和模块的帮助下为应用程序引入了一种功能,可以装载一组需要的 RSL 而不是用主应用程序对所有 RSL 进行预装载。如需了解更多关于此功能的信息,请参见此 描述 。
下一步方向
随着新的移动框架功能以及核心框架增强功能的添加 ,Flex 已趋于成熟 , 足以开发具有表现力的网站、桌面或移动设备所需的所有部件。欢迎新老客户尝试使用 Flex 4.5 ,它会带给您不一样的体验!
根据 Creative Commons Attribution-Noncommercial 3.0 Unported License 授予本作品许可。