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。
沒有留言:
張貼留言