本文假定读者了解使用Flash Professional制作AIR应用程序的基本知识。
中级
运行在BlackBerry PlayBook上的BlackBerry Tablet OS提供了对Adobe AIR和Flash Player的支持。BlackBerry Tablet OS SDK提供了打包和部署AIR应用程序(使用.bar后缀名的文件)的工具。
通过这个配置,你可以用Flash Professional或者是Flash Builder创建Flash的内容。这篇文章将会介绍如何在Flash Professional CS5中使用BlackBerry Tablet OS SDK制作、打包并部署一个电池监视器程序。
这篇文章分为以下几个段落:
BlackBerry Tablet OS SDK for Adobe AIR提供了为PlayBook开发AIR应用程序的API。现在的SDK版本提供了API制作UI控件,这些控件和PlayBook的内置UI控件的外观类似。还提供了可以访问系统信息的API,比如可以访问电池状态。除了这些必要的库以外,还提供了可以打包和部署PlayBook应用程序(.bar文件)到PlayBook模拟器上的工具。
目前,在Flash Builder 4中,已经有一个插件可以用来发布你制作的PlayBook应用程序了。但是到写这篇文章的时间为止,在Flash Professional CS5中还没有提供类似的插件。这篇文章将会介绍在Flash Professional CS5中如何使用BlackBerry Tablet OS SDK开发PlayBook的应用程序。
在跟着做这篇文章的步骤之前,先安装Adobe Flash Professional CS5 Extension for AIR 2.5 (beta). 下载 BlackBerry Tablet OS SDK ,并且按照 Getting Started Guide中的描述安装。
在这个段落中,你将了解到如何使用Flash Professional为PlayBook制作一个应用程序。为了更容易了解这个过程,你可以下载要求部分中的电池监视器应用程序。例子程序中有两个子文件夹,For desktop文件夹中的文件可以让你在Flash中测试和预览这个应用程序的功能。For simulator文件夹中的文件使用了BlackBerry Tablet OS SDK提供的API,你可以将其打包并且部署到PlayBook的模拟器上。
电池监视器是一个用来反映电池的准确余量和状态的应用程序。当你下载并解压示例文件后,在Flash Professional CS5中打开For desktop文件夹中的BatteryMonitor.fla文件。测试影片预览一下应用程序的界面(参见图1)。
在示例文件的For desktop文件夹中,打开main.as文件。找到下面这几行代码
bState = 3;
bLevel = 50;
你可以试着修改这些值并且重新测试影片看看在Flash Player中的运行效果。通过这些变量,你可以在不用真实设备或模拟器的情况下调试程序。
为了得到PlayBook设备的电池信息,需要使用BlackBerry Tablet OS SDK提供的API. 如果你想了解更多关于如何使用API的信息,可以在SDK的文件夹中找到API的说明文档。要在你的项目中使用这些API,你必须将它们加到你的FLA文件的库路径中。在Flash Professional CS5中,按照下列步骤:
注意: 一定要将qnx-air的库设为外部的链接,因为它包含了一些只在PlayBook模拟器中支持的类,这些类不存在于桌面AIR运行时中。
在做完这些操作后,库路径就配置好了。(参见图3):
电池信息相关的API不是Adobe AIR SDK所提供的内置API。BlackBerry Tablet OS SDK提供了相关API可以让开发者获得电池电量信息并且在电池状态改变时触发事件。
在For simulator文件夹中,打开BatteryMonitor.fla文件。在main.as文件中看一看下面这些代码:
import qnx.system.Device;
import qnx.events.DeviceBatteryEvent;
这几行代码用来导入监视设备的电池状态所必需用到的类。继续阅读下面的代码:
Device.device.batteryMonitoringEnabled = true;
bLevel = Device.device.batteryLevel;
bState = Device.device.batteryState;
this.addEventListener(DeviceBatteryEvent.LEVEL_CHANGE, onLevelChange);
this.addEventListener(DeviceBatteryEvent.STATE_CHANGE, onStateChange);
在上面的代码例子的第一行中,将Device.device.batteryMonitoringEnabled设置为true从而开启了监视电池状态的功能。当batteryMonitoringEnabled设置为true时,电池电量或状态的改变就会触发DeviceBatteryEvent.LEVEL_CHANGE和DeviceBatteryEvent.STATE_CHANGE事件。你可以添加onLevelChange和onStateChange事件监听函数来监视电池状态并且更新应用程序中相应的电池图标。
打开battery.as文件,看一看前两行代码:
import qnx.dialog.AlertDialog;
import qnx.dialog.DialogSize;
这两行代码导入了BlackBerry Tablet OS SDK提供的UI控件相关的类。你可以使用BlackBerry提供的UI控件类,或者创建你自己的UI控件类。作为示例,在这个项目中将使用BlackBerry提供的UI控件类,因为这让你的应用程序看起来像是一个PlayBook内置的程序,保持了一致的外观。当电池状态为UNKNOWN时,方法ShowWarning() 就是用来显示一个提示信息的。这里使用了BlackBerry提供的AlertDialog类。
在这个段落,将添加BlackBerry Tablet OS要求的描述信息。按照下列步骤:
注意: 做完这些操作后,不要点击发布按钮。点击OK按钮然后测试影片。Flash Professional将会在生成SWF文件时自动生成应用程序描述文件。
既然已经准备好了SWF文件和应用程序描述文件,你就可以按照下一个段落中的指导使用BlackBerry Tablet OS SDK提供的工具打包并且部署应用程序了。
BlackBerry Tablet OS的文档中介绍了如何打包和部署.bar文件。你可以按照那些步骤来打包并且部署这个电池监视器程序到PlayBook模拟器上。
注意: BlackBerry Tablet OS SDK目前还没有提供对Flash Professional CS5的支持,但是你可以用命令行的方式进行打包和部署。
当你在PlayBook模拟器上运行部署后的电池监视器程序时,会有一个警告信息提示(参见图5)。
之所以会有这个提示是因为模拟器的电池状态的返回值是UNKNOWN。这个警告提示对话框就是用来处理这种情况的。所以在使用模拟器时,你不能调试电池监视器的功能。而且,到写这篇文章的时间为止,PlayBook模拟器还不支持其它一些功能,如照相机,GPS相关API和麦克风。为了绕过模拟器的限制,你可以在别的移动设备中调试你的应用程序。例如,你可以将你的BlackBerry Tablet应用程序发布到AIR for Android上。用这种方法,如果你项目不是必须用到BlackBerry Tablet OS SDK的话,你就可以利用Adobe AIR SDK提供的API来进行调试。在测试并且确保你的功能运行正常后,你只用稍微修改一下FLA文件就可以让你的应用程序也能在PlayBook上运行了。
BlackBerry Tablet OS SDK和Flash Professional都将会持续的改进开发AIR应用程序的工作流。这是一个很振奋人心的消息,因为你可以很容易地使用Flash Professional为新的BlackBerry Tablet平台制作应用程序!请继续保持关注。你可以通过Adobe Developer Connection 和 BlackBerry Tablet OS developer page学习接下来的新功能、获取最新的更新信息。