新功能
File Promises
File promises 是一个新的API(URLFilePromise)。要从AIR应用程序下载文件,用这个API十分方便。因为你只需把文件的URL从AIR程序窗口拖出到本机上,文件就会开始下载。效果就像你需要从QQ共享里下载文件一样,把它拖到桌面上,文件便会自动下载到你的桌面上。
var items:Array = fileData.selectedItems;
var promises:Array = new Array();
for each (var item:Object in items)
{
var filePromise:URLFilePromise = new URLFilePromise();
var request:URLRequest = new URLRequest(item.url);filePromise.request = request;
filePromise.relativePath = item.name;
promises.push(filePromise);
}clipboard.setDate(ClipboardFormats.FILE_PROMISE_LIST_FORMAT, promises);
NativeDragManager.doDrag(fileDate, clipboard);
屏幕阅读器(Screen reader)
从前AIR里的文字是不被屏幕所认知的。AIR 2.0 终于可被屏幕阅读了。什么意思呢?我想应该就像金山词霸的“屏幕取词”功能一样,你把鼠标放在AIR里的文字上,就可以使用金山词霸来翻译了(现在我是用灵格斯的“剪贴板取词”)。不过,在此版本只支持 Windows 操作系统。以下特性已经添加:
- 运行时对话框—对话框可被屏幕阅读器阅读了;
- Flex组件和窗口—Flex组件和窗口可被屏幕阅读器阅读了;
本地进程(应用程序)
与使用默认应用程序打开文件类似,AIR 2.0 可以运行本地进程并且与它进行交互。这个新特性只适用于应用程序是用本地系统安装程序安装的情况下。以下类已被支持:
- flash.desktop.NativeProcess — 集成了命令行并且可在本机运行。当某个进程运行后,AIR应用程序可以监听它的输入数据、输出数据以及错信息;
- flash.desktop.NativeProcessStartupInfo — 提供了在本机启动一个进程所需的基本信息;
- flash.events.NativeProcessExitEvent — 当进程退出时调度此事件。这个事件有可能不会被调度,当子进程比AIR应用程序的生命周期要长时。
新的网络支持
- IPv6 支持
AIR 2.0 对所有网络API新增了IPv6的支持。目前互联网大多数在使用IPv4,它已经有20历史了。 - 用户数据报协议
在已有的Socket类之上添加了新的socket类。已有的类支持TCP协议,而在AIR 2.0里新增了 DatagramSocket 类以支持UDP协议。DatagramSocket 类允许发送和接收 UDP 数据包。
增强功能的API
NativeWindow 的最大尺寸
在 AIR 1.5.2 时代 NativeWindow 的最大尺寸是 2880×2880 像素,而在 AIR 2.0 里将提升到 4095×4095 像素。
空闲超时
允许设置空闲超时值(只支持win/Mac)。
Mac上的矢量印刷
AIR 1.5 在 Windows 上支持了矢量印刷(flash.printing.PrintJob)。AIR 2.0 将会在 Mac 上支持这特性。
数据库的业务保存点
在 AIR 1.5 里,SQLConnection 类支持业务(transactions)。业务允许用户跟踪SQL命令并在需要时提交或退回。AIR 2.0 里新增了这些方法:savepoints()、setSavepoint()、releaseSavepoint()以及rollbackToSavePoint()。
麦克风访问API
AIR 2.0 提供了可以访问未压缩的PCM字节数据的麦克风API了。具体查看手册里的 SampleDataEvent.SAMPLE_DATE 事件。
使用默认应用程序打开文件
新增了 openWithDefaultApplication() 方法,可使用系统的默认应用程序打开文件。当你使用此方法时,文件会被已在系统上注册了的默认应用程序打开。如果文件是可执行文件(例如:*.exe),那么它会直接执行。
跟平台有关的APIs
多点触摸功能
MultitouchInputMode 是一个枚举类,存放着三种多点触摸硬件类型:
GETTURE = “getture”
NONE = “none”
TOUCH_POINT = “touchPoint”
首先你需要设置 Multitouch 类的硬件类型,然后你就可以开始监听事件了。
存储器(Storage Volume)监听
Adobe 说:真失策,在以往的版本里居然遗漏了这个功能。AIR 2.0 提供了对系统的存储器信息访问和监听的API。通过这些API,你不仅可以访问到硬盘文件系统,同时还可以监听通过USB或火线进行连接的移动存储设备,例如移动硬盘和以存储方式连接到计算机的相机,MP3或手机等等。这两个类可以帮到你:
- flash.filesystem.StorageVolumeInfo—这个 StorageVolumeInfo 类是一个单例管理类,有两种事件类型:storageVolumeMount 和 storageVolumeUnmount;
- flash.filesystem.StorageVolume—这个类存放着跟存储器有关的属性信息;
更好的性能
减小资源开销
AIR 应用程序被大众认定是占用资源的。在 AIR 2.0 里,Adobe 付出了额外的努力去减小运行时的体积,减小CPU/内存的消耗。