AIR 2.0的三个新特性!
不知道有多少人注意到了Mike Chambers最近放出的讲稿Advanced Desktop Development with Adobe AIR中其实透露了部分AIR 2.0的新特性内容。反正我是没有注意到,但是Lee Brimelow注意到了,所以我忙不迭的下载并阅读了那篇讲稿。是的,我现在的心情和Lee Brimelow一样,那就是:很高兴我们终于可以放出一些AIR 2.0令人兴奋的新特性了!
这里我简单介绍一下Mike Chambers讲稿中所提及的三个AIR 2.0的新特性,更多新特性会在Adobe MAX 09大会上发布。届时会为大家提供更多的信息。
AIR 2.0新特性之一:存储器(Storage Volume)监听
AIR 2.0提供了对系统的存储器信息访问和监听的API。通过这些API,你不仅可以访问到硬盘文件系统,同时还可以监听通过USB或火线进行连接的移动存储设备,例如移动硬盘和以存储方式连接到计算机的相机,MP3或手机等等。
你可以通过对系统存储器信息添加监听器来监听这些外部设备的连接、断开状态。
代码示例:
StorageVolumeInfo.storageVolumeInfo.addEventListener(StorageVolumeChangeEvent.STORAGE_VOLUME_MOUNT, onStorageVolumeMount); StorageVolumeInfo.storageVolumeInfo.addEventListener(StorageVolumeChangeEvent.STORAGE_VOLUME_UNMOUNT,onStorageVolumeUnmount);
AIR 2.0新特性之二:使用操作系统默认应用程序打开文件
AIR 2.0提供了非常简单易用的API让你使用操作系统所定义的关联应用程序打开文件。用法如下:
var file:File = File.desktopDirectory.resolvePath("Temp.txt"); file.openWithDefaultApplication();
这使得使用AIR开发基于“文件管理器”的应用称为可能。
AIR 2.0新特性之三:与本地进程(应用程序)进行通讯!
毫不夸张的说,这是最让我感到兴奋的AIR 2.0新特性之一,因为它意味着将AIR应用的功能无限扩展化。举个例子来说,你可以将Windows命令行程序(cmd.exe)通过AIR应用封装起来,并指挥它做任何你想做的事情。
AIR2.0与本地进程的交互主要体现在以下几方面:
- 启动进程并提供初始参数
- 向进程写入数据
- 读取进程的输出数据
以下是一个例子:
private var nativeProcess:NativeProcess = new NativeProcess(); private var npsi:NativeProcessStartupInfo = new NativeProcessStartupInfo(); var file:File = File.desktopDirectory.resolvePath("executable.exe"); npsi.executable = file; npsi.workingDirectory = File.desktopDirectory; var args:Vector.<String> = new Vector.<String>; args.push("-key"); args.push("value"); npsi.arguments = args; nativeProcess.start(npsi);
当然,Adobe始终把平台运行时的安全因素放在首位。如果你希望你的AIR应用能有与本地进程交互,需要注意以下限制:
- 必须通过操作系统的安装工具来部署,不能直接使用AIR包进行安装(AIR是跨平台的文件格式)。
- 不能启动位于当前AIR应用程序文件夹中的进程。
- 必须在AIR应用程序描述文件指明supportProfiles为extendedDesktop(或使用AIR命令行工具指明该参数)。
关于如何通过操作系统本地的安装工具来部署AIR应用,这次的MAX大会上将有专题介绍。
Enjoy!
相关日志:
令人兴奋的功能,期待中。。。
第一个新特性不错,第三个更可怕。
但,在AIR app失去系统焦点时,还是不能监听键盘状态吗?
现在还不太清楚。当然AIR 2.0的新特性远不止这些。:)