AIR允许你创建在线或离线状态下的应用,比如,你打算创建一个AIR工具来管理你的博客,那么你可能需要随时都可以写文章,而不用理睬网络是在线还是离线。要做到这一点,你的应用就要具备检测网络状态的能力,如果网络处于在线状态,就可以立刻发布你的文章到博客上,如果是离线状态,可以先保存文章的内容(可以使用文件存储或SQLite数据库)。
接下来,你将创建一个简单的AIR应用,这个应用拥有一个窗体,窗体内有三个元件:一个搜索的输入框,一个提交按钮,和一个显示网络状态的图片。如果一个用户在输入框中敲入了一些文字并点击了搜索按钮,这个应用将会打开你的浏览器并自动在Google进行检索,当然,如果你不能连接到互联网,搜索的按钮是被禁用的。

AIR有两个方法可以帮助你检测网络连接状态,URLMonitor [ Flex | Javascript ] 和SocketMonitor [ Flex | Javascript ]。这两个类都继承自ServiceMonitor Class [ Flex | Javascript ]。要检测你的网络状态你只需要遵循以下步骤即可:
1.建立一个你想要监测的URLRequest对象,你可以设置它的模式为“HEAD”来避免网页下载完毕才开始监测状态。
2.建立一个URLMonitor对象并指定到你要监测的URL上去。
3.为URLMonitor添加一个事件监听器来监测StatusEvent.STATUS事件并创建一个函数来接受事件。
4.设置如何开始你的URLMonitor监测。
如果对上面的内容不太明白,也不用担心,在下面的代码中你将看到详细的说明,完整的示例文件在最后的下载文档中。
开始编写示例
在这个示例中,你要创建一个初始化的函数,用来创建你的URLRequest对象和URLMonitor对象。如果你使用Flex,那么这个函数应该绑定到CreationComplete事件上,如果是HTML/JavaScript,你需要把这个函数指定给Body的Onload事件。
Flex
Actionscript:
import air.net.URLMonitor;
import flash.net.navigateToURL;
import flash.net.URLRequest;
// DEFINE The Variable that will hold the URLMonitor
private var monitor:URLMonitor;
private function init():void {
// URLRequest that the Monitor Will Check
var url:URLRequest = new URLRequest(“http://www.davidtucker.net/index.php”);
// Checks Only the Headers - Not the Full Page
url.method = “HEAD”;
// Create the URL Monitor and Pass it the URLRequest
monitor = new URLMonitor(url);
// Set the Interval (in ms) - 3000 = 3 Seconds
monitor.pollInterval = 3000;
// Create the Event Listener that Will Be Fired When Connection Changes
monitor.addEventListener(StatusEvent.STATUS,on_connection);
// Start the URLMonitor
monitor.start();
}
HTML/Javascript
JavaScript:
var monitor;
function onLoad() {
// URLRequest that the Monitor Will Check
var request = new air.URLRequest( “http://www.davidtucker.net/index.php” );
// Checks Only the Headers - Not the Full Page
request.method = “HEAD”;
// Create the URL Monitor and Pass it the URLRequest
monitor = new air.URLMonitor( request );
// Create the Event Listener that Will Be Fired When Connection Changes
monitor.addEventListener( air.StatusEvent.STATUS, doStatus );
// Start the URLMonitor
monitor.start();
你可以发现,这两者并没有什么区别,甚至在JavaScript中调用AIR的函数比在Flex中更简单。
注意:如果你要在JavaScript中使用这个函数,必须确认你引入了AIRAliases.js和servicemonitor.swf这两个文件。如果缺少它们,这个函数将无法工作。你的函数可以在AIRAliases.js之外。在缺少servicemonitor.swf的情况下你将不能使用URLMonitor。
Flex Application
Source Code
HTML / Javascript Application
Source Code
admin#flashas.net (#为@) 联系QQ:
:40777822
浙ICP备06033001号