包 | air.net |
类 | public dynamic class ServiceMonitor |
继承 | ServiceMonitor EventDispatcher Object |
子类 | SocketMonitor, URLMonitor |
运行时版本: | AIR 1.0 |
若要在 JavaScript 代码中使用此类,请加载 ServiceMonitor.swf 文件,如下所示:
<script src="ServiceMonitor.swf" type="application/x-shockwave-flash">
属性 | 定义方 | ||
---|---|---|---|
available : Boolean 当前是否将服务视为“可用”。初始值为 false,直至状态检查将该属性设置为 true,或者该属性被显式初始化为 true。通常,此属性是由子类或专用函数中的 checkStatus() 实现设置的,但是,如果应用程序具有与服务可用性有关的独立信息(例如,请求刚刚成功或失败),则可以显式设置该属性。 | ServiceMonitor | ||
constructor : Object
对类对象或给定对象实例的构造函数的引用。 | Object | ||
lastStatusUpdate : Date [只读 (read-only)] 上次更新状态的时间。 | ServiceMonitor | ||
pollInterval : Number 服务器的轮询间隔(以毫秒为单位)。 | ServiceMonitor | ||
prototype : Object [静态]
对类或函数对象的原型对象的引用。 | Object | ||
running : Boolean [只读 (read-only)] 是否已启动监视器。 | 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 | ||
返回指定对象的字符串表示形式。 | ServiceMonitor | ||
返回指定对象的原始值。 | Object | ||
检查是否用此 EventDispatcher 对象或其任何始祖为指定事件类型注册了事件侦听器。 | EventDispatcher |
方法 | 定义方 | ||
---|---|---|---|
检查服务状态。 | ServiceMonitor |
事件 | 摘要 | 定义方 | ||
---|---|---|---|---|
[广播事件] Flash Player 或 AIR 应用程序获得操作系统焦点并变为活动状态时将调度此事件。 | EventDispatcher | |||
[广播事件] Flash Player 或 AIR 应用程序失去操作系统焦点并变为非活动状态时将调度此事件。 | EventDispatcher | |||
指示服务状态已更改。 | ServiceMonitor |
available | 属性 |
available:Boolean
[读写] 运行时版本: | AIR 1.0 |
当前是否将服务视为“可用”。
初始值为 false
,直至状态检查将该属性设置为 true
,或者显式将该属性初始化为 true
。
通常,此属性是由子类或专用函数中的 checkStatus()
实现设置的,但是,如果应用程序具有与服务可用性有关的独立信息(例如,请求刚刚成功或失败),则可以显式设置该属性。
public function get available():Boolean
public function set available(value:Boolean):void
lastStatusUpdate | 属性 |
lastStatusUpdate:Date
[只读 (read-only)] 运行时版本: | AIR 1.0 |
上次更新状态的时间。
public function get lastStatusUpdate():Date
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 对象。
通常会从此类派生子类以监视特定的服务类型。
此类专用于 JavaScript(来自 HTML 应用程序内容),如 makeJavascriptSubclass()
方法的说明所述。
在创建 ServiceMonitor 对象(或子类对象)后,调用 start()
方法可开始监视服务的状态。
与 Timer 对象一样,调用方应保持对 ServiceMonitor 对象的引用。否则,运行时会删除该对象并结束监视。
checkStatus | () | 方法 |
protected function checkStatus():void
运行时版本: | AIR 1.0 |
检查服务状态。
用于检查服务状态的子类覆盖方法。
通常,此方法将启动网络操作,该操作的完成或失败将导致设置 available
属性。
通过在“专用函数”对象中定义 checkStatus()
方法,JavaScript 代码可以专用此方法。
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 和 ServiceMonitor.swf 文件。
参数
constructorFunction:Object —
JavaScript 对象的 prototype 属性。例如,如果要用作专用函数对象的 JavaScript 对象名为 MyHTTPMonitor,请传递 MyHTTPMonitor.prototype 作为此参数的值。
|
start | () | 方法 |
stop | () | 方法 |
toString | () | 方法 |
override public function toString():String
运行时版本: | AIR 1.0 |
返回指定对象的字符串表示形式。
注意:Object 类的方法是在 Object 的原型上动态创建的。要在 Object 的子类中重新定义该方法,请不要使用 override
关键字。例如,Object 的一个子类实现 function toString():String
而不使用基类覆盖。
String — 对象的字符串表示形式。 |
status | 事件 |
flash.events.StatusEvent
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
| 报告其状态的对象。 |