套件 | air.net |
類別 | public dynamic class ServiceMonitor |
繼承 | ServiceMonitor EventDispatcher Object |
子類別 | SocketMonitor, URLMonitor |
執行階段版本: | AIR 1.0 |
此類別已包含在 aircore.swc 檔案中。Adobe® Flash™ Builder™ 會在您建立 Adobe® AIR™ 的專案時,自動載入這個類別。Adobe® Flex™ SDK 也會包含此 aircore.swc 檔案,如果您使用 Flex SDK,則編譯應用程式時就應該包含此檔案。
在 Adobe® Flash® CS3 Professional 中,此類別已包含在 ServiceMonitorShim.swc 檔案中。若要使用 air.net 套件中的類別,您必須先從「組件」面板將 ServiceMonitorShim 組件拖曳到「元件庫」中,再將下列 import
陳述式加入 ActionScript 3.0 程式碼:
import air.net.*;
若要在 Adobe® Flash® Professional (CS4 或更新的版本) 中使用 air.net 套件:
- 選取「檔案 > 發佈設定」命令。
- 在 Flash 面板中,按一下 ActionScript 3.0 的「設定」按鈕,然後選取「元件庫路徑」。
- 按一下「瀏覽至 SWC 檔案」按鈕。瀏覽至 Adobe Flash Professional 安裝資料夾中的 Adobe Flash CSn/AIKn.n/frameworks/libs/air/aircore.swc 檔案。
- 按一下「確定」按鈕。
- 將下列
import
陳述式加入您的 ActionScript 3.0 程式碼:import air.net.*;
屬性 | 定義自 | ||
---|---|---|---|
available : Boolean
無論服務目前是否視為「可用」。除非狀態檢查將該屬性設定為 true 或該屬性已明確初始化為 true,否則初始值都是 false。一般來說,這個屬性是由子類別中的 checkStatus() 實作或專門物件所設定,但是假如應用程式具有服務可用性的相關獨立資訊 (例如,剛才成功或失敗的要求),則可以明確設定屬性。
| ServiceMonitor | ||
constructor : Object
類別物件的參照或是特定物件實體的建構函數。 | Object | ||
lastStatusUpdate : Date [唯讀]
最後一次狀態更新時間。 | ServiceMonitor | ||
pollInterval : Number
輪詢伺服器的間隔 (單位為毫秒)。 | ServiceMonitor | ||
running : Boolean [唯讀]
無論監視器是否已啟動。 | ServiceMonitor |
方法 | 定義自 | ||
---|---|---|---|
建立 ServiceMonitor 物件。 | ServiceMonitor | ||
addEventListener(type:String, listener:Function, useCapture:Boolean = false, priority:int = 0, useWeakReference:Boolean = false):void
會在 EventDispatcher 物件註冊事件偵聽程式,以便讓偵聽程式收到事件的通知。 | EventDispatcher | ||
會將事件傳送到事件流程。 | EventDispatcher | ||
會檢查 EventDispatcher 物件是否有對特定的事件類型註冊偵聽程式。 | EventDispatcher | ||
指出物件是否有已定義的指定屬性。 | Object | ||
指出 Object 類別的實體是否位於指定為參數的物件原型鏈中。 | Object | ||
[靜態]
將公用 ServiceMonitor 方法加入 JavaScript 建構函數的原型。 | ServiceMonitor | ||
指出指定的屬性是否存在,以及是否可列舉。 | Object | ||
會從 EventDispatcher 物件移除偵聽程式。 | EventDispatcher | ||
為迴圈作業設定動態屬性的可用性。 | Object | ||
啟動服務監視器。 | ServiceMonitor | ||
停止監視服務。 | ServiceMonitor | ||
傳回代表此物件的字串,根據地區特定慣例進行格式化。 | Object | ||
[覆寫]
會傳回指定之物件的字串形式。 | ServiceMonitor | ||
會傳回指定之物件的基本值。 | Object | ||
檢查此 EventDispatcher 物件是否已註冊事件偵聽程式,或者此物件的任何祖系已為特定事件類型註冊事件偵聽程式。 | EventDispatcher |
方法 | 定義自 | ||
---|---|---|---|
檢查服務的狀態。 | ServiceMonitor |
事件 | 摘要 | 定義自 | ||
---|---|---|---|---|
[廣播事件] 當 Flash Player 或 AIR 應用程式取得作業系統焦點並成為作用中時傳送。 | EventDispatcher | |||
[廣播事件] 當 Flash Player 或 AIR 應用程式失去作業系統焦點並成為非作用中時傳送。 | EventDispatcher | |||
指出服務狀態已變更。 | ServiceMonitor |
available | 屬性 |
lastStatusUpdate | 屬性 |
pollInterval | 屬性 |
pollInterval:Number
執行階段版本: | AIR 1.0 |
輪詢伺服器的間隔 (單位為毫秒)。
如果為零,表示不會定期輪詢伺服器,而是只在呼叫 start()
後以及網路狀態變更時立即輪詢伺服器。
ServiceMonitor 物件只會在服務狀態變更時 (而非每次輪詢間隔) 傳送 status
事件。此物件也會傳送 status
事件,做為網路連線變更的結果,無論輪詢間隔為何。
預設值為 0。
實作
public function get pollInterval():Number
public function set pollInterval(value:Number):void
running | 屬性 |
ServiceMonitor | () | 建構函式 |
public function ServiceMonitor()
執行階段版本: | AIR 1.0 |
建立 ServiceMonitor 物件。
此類別通常會成為子類別,以監視特定的服務類型。
建立 ServiceMonitor 物件 (或子類別物件) 之後,請呼叫 start()
方法,開始監視服務的狀態。
和 Timer 物件一樣,呼叫端應該維護 ServiceMonitor 物件的參考。否則,執行階段會刪除該物件和監視端。
checkStatus | () | 方法 |
protected function checkStatus():void
執行階段版本: | AIR 1.0 |
檢查服務的狀態。
用來檢查服務狀態的子類別覆寫方法。
此方法通常會起始網路作業,而該作業成功或失敗會影響 available
屬性的設定。
JavaScript 程式碼可以透過在「專用」物件中定義 checkStatus()
方法,讓這個方法成為專屬方法。
makeJavascriptSubclass | () | 方法 |
public static function makeJavascriptSubclass(constructorFunction:Object):void
執行階段版本: | AIR 1.0 |
將公用 ServiceMonitor 方法加入 JavaScript 建構函數的原型。
將函數加入至 JavaScript 建構函數的原型,以便將公用 ServiceMonitor 函數轉送至 ServiceMonitor 物件。這近似於 ActionScript 基底類別的一般 JavaScript 子類別。
加入具有專門用途之 ServiceMonitor 的 JavaScript 類別看起來如下:
// JavaScript Constructor function function MyHTTPMonitor(url, method) { // "that" variable makes "this" available in closures below var that = this; // Required initialization of the service monitor, returns the actual ServiceMonitor object. this.monitor = this.initServiceMonitor(); // Initializes URLStream and event handlers. this._urlStream = new air.URLStream(); this._urlRequest = new air.URLRequest(url); if (method) { this._urlRequest.method = method; } else { this._urlRequest.method = "GET"; } function onStatus(event) { that.monitor.available = Number(event.status) == 200; that._urlStream.close(); } function onError(event) { that.monitor.available = false; that._urlStream.close(); } this._urlStream.addEventListener(air.HTTPStatusEvent.HTTP_RESPONSE_STATUS, onStatus); this._urlStream.addEventListener(air.SecurityErrorEvent.SECURITY_ERROR, onError); this._urlStream.addEventListener(air.IOErrorEvent.IO_ERROR, onError); } // Augment JavaScript prototype with public methods from ServiceMonitor air.ServiceMonitor.makeJavascriptSubclass(MyHTTPMonitor); // Implement specializer functions, just as you would when subclassing a JavaScript class MyHTTPMonitor.prototype.checkStatus = function() { air.trace('OVERRIDDEN checkStatus!', this); this._urlStream.load(this._urlRequest); }
若要使用 JavaScript 類別:
var httpMon = new MyHTTPMonitor('http://www.adobe.com')
請務必使用 script
標籤載入 AIRAliases.js 和 aircore.swf 檔案。
參數
constructorFunction:Object — JavaScript 物件的 prototype 屬性。例如,您要當做專門物件來使用的 JavaScript 物件名為 MyHTTPMonitor,那麼請傳遞 MyHTTPMonitor.prototype 做為此參數的值。
|
start | () | 方法 |
stop | () | 方法 |
toString | () | 方法 |
status | 事件 |
flash.events.StatusEvent
屬性 StatusEvent.type =
flash.events.StatusEvent.STATUS
執行階段版本: | AIR 1.0 |
指出服務狀態已變更。
雖然 code
屬性的值是 "Service.available"
或 "Service.unavailable"
,不過最佳做法是檢查 ServiceMonitor.available
屬性的值。
status
事件物件的 type
屬性值。
這個事件具有下列屬性:
屬性 | 值 |
---|---|
bubbles | false |
cancelable | false ;沒有要取消的預設行為指令。 |
code | 物件狀態的說明。 |
currentTarget | 正主動使用事件偵聽程式處理 Event 物件的物件。 |
level | 訊息的類別,例如 "status" 、"warning" 或 "error" 。 |
target | 回報其自身狀態的物件。 |
Tue Jun 12 2018, 03:47 PM Z