(AIR only)
window.runtime 属性window.runtime.air.net.ServiceMonitor
继承ServiceMonitor Inheritance EventDispatcher Inheritance Object

ServiceMonitor 类实现用于监视网络服务的状态和可用性的框架。ServiceMonitor 类作为所有其他服务监视器的基类。

若要在 JavaScript 代码中使用此类,请加载 ServiceMonitor.swf 文件,如下所示:

<script src="ServiceMonitor.swf" type="application/x-shockwave-flash">



属性
 属性定义方
  available : Boolean
当前是否将服务视为“可用”。初始值为 false,直至状态检查将该属性设置为 true,或者该属性被显式初始化为 true。通常,此属性是由子类或专用函数中的 checkStatus() 实现设置的,但是,如果应用程序具有与服务可用性有关的独立信息(例如,请求刚刚成功或失败),则可以显式设置该属性。
ServiceMonitor
 Inheritedconstructor : Object
对类对象或给定对象实例的构造函数的引用。
Object
  lastStatusUpdate : Date
[只读 (read-only)] 上次更新状态的时间。
ServiceMonitor
  pollInterval : Number
服务器的轮询间隔(以毫秒为单位)。
ServiceMonitor
 Inheritedprototype : Object
[静态] 对类或函数对象的原型对象的引用。
Object
  running : Boolean
[只读 (read-only)] 是否已启动监视器。
ServiceMonitor
公共方法
 方法定义方
  
创建 ServiceMonitor 对象。
ServiceMonitor
 Inherited
addEventListener(type:String, listener:Function, useCapture:Boolean = false, priority:int = 0, useWeakReference:Boolean = false):void
使用 EventDispatcher 对象注册事件侦听器对象,以使侦听器能够接收事件通知。
EventDispatcher
 Inherited
dispatchEvent(event:Event):Boolean
将事件调度到事件流中。
EventDispatcher
 Inherited
hasEventListener(type:String):Boolean
检查 EventDispatcher 对象是否为特定事件类型注册了任何侦听器。
EventDispatcher
 Inherited
hasOwnProperty(name:String):Boolean
指示对象是否已经定义了指定的属性。
Object
 Inherited
isPrototypeOf(theClass:Object):Boolean
指示 Object 类的实例是否在指定为参数的对象的原型链中。
Object
  
makeJavascriptSubclass(constructorFunction:Object):void
[静态] 将公共 ServiceMonitor 方法添加到 JavaScript 构造函数的原型中。
ServiceMonitor
 Inherited
propertyIsEnumerable(name:String):Boolean
指示指定的属性是否存在、是否可枚举。
Object
 Inherited
removeEventListener(type:String, listener:Function, useCapture:Boolean = false):void
从 EventDispatcher 对象中删除侦听器。
EventDispatcher
 Inherited
setPropertyIsEnumerable(name:String, isEnum:Boolean = true):void
设置循环操作动态属性的可用性。
Object
  
启动服务监视器。
ServiceMonitor
  
停止监视服务。
ServiceMonitor
  
toString():String
返回指定对象的字符串表示形式。
ServiceMonitor
 Inherited
valueOf():Object
返回指定对象的原始值。
Object
 Inherited
willTrigger(type:String):Boolean
检查是否用此 EventDispatcher 对象或其任何始祖为指定事件类型注册了事件侦听器。
EventDispatcher
受保护的方法
 方法定义方
  
检查服务状态。
ServiceMonitor
事件
 事件 摘要 定义方
 InheritedFlash Player 或 AIR 应用程序获得操作系统焦点并变为活动状态时调度。EventDispatcher
 InheritedFlash Player 或 AIR 应用程序失去操作系统焦点并变为非活动状态时调度。EventDispatcher
  指示服务状态已更改。ServiceMonitor
属性详细信息
available属性
available:Boolean  [读写]

当前是否将服务视为“可用”。

初始值为 false,直至状态检查将该属性设置为 true,或者显式将该属性初始化为 true

通常,此属性是由子类或专用函数中的 checkStatus() 实现设置的,但是,如果应用程序具有与服务可用性有关的独立信息(例如,请求刚刚成功或失败),则可以显式设置该属性。

lastStatusUpdate属性 
lastStatusUpdate:Date  [只读 (read-only)]

上次更新状态的时间。

pollInterval属性 
pollInterval:Number  [读写]

服务器的轮询间隔(以毫秒为单位)。

如果为零,则不定期轮询服务器,而仅在调用 start() 后和网络状态发生更改时立即轮询。

如果服务状态已更改(不是在每次轮询间隔时),则 ServiceMonitor 对象只调度 status 事件。如果网络连接发生更改(不管轮询间隔如何),该对象也会调度 status 事件。

默认值为 0

running属性 
running:Boolean  [只读 (read-only)]

是否已启动监视器。

构造函数详细信息
ServiceMonitor()构造函数
function ServiceMonitor()

创建 ServiceMonitor 对象。

通常会从此类派生子类以监视特定的服务类型。

此类专用于 JavaScript(来自 HTML 应用程序内容),如 makeJavascriptSubclass() 方法的说明所述。

在创建 ServiceMonitor 对象(或子类对象)后,调用 start() 方法可开始监视服务的状态。

与 Timer 对象一样,调用方应保持对 ServiceMonitor 对象的引用。否则,运行时会删除该对象并结束监视。

方法详细信息
checkStatus()方法
protected function checkStatus():void

检查服务状态。

用于检查服务状态的子类覆盖方法。

通常,此方法将启动网络操作,该操作的完成或失败将导致设置 available 属性。

通过在“专用函数”对象中定义 checkStatus() 方法,JavaScript 代码可以专用此方法。

makeJavascriptSubclass()方法 
function makeJavascriptSubclass(constructorFunction:Object):void

将公共 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()方法 
function start():void

启动服务监视器。

stop()方法 
function stop():void

停止监视服务。

toString()方法 
function toString():String

返回指定对象的字符串表示形式。

注意:Object 类的方法是在 Object 的原型上动态创建的。要在 Object 的子类中重新定义该方法,请不要使用 override 关键字。例如,Object 的一个子类实现 function toString():String 而不使用基类覆盖。

返回
String — 对象的字符串表示形式。
事件详细信息
status 事件
事件对象类型: flash.events.StatusEvent
属性 StatusEvent.type = flash.events.StatusEvent.STATUS

指示服务状态已更改。

code 属性的值为 "Service.available""Service.unavailable",但最佳做法是检查 ServiceMonitor.available 属性的值。

定义 status 事件对象的 type 属性值。

此事件具有以下属性:

属性
bubblesfalse
cancelablefalse;没有要取消的默认行为。
code对象状态的描述。
currentTarget当前正在使用某个事件侦听器处理 Event 对象的对象。
level消息类别,例如 "status""warning""error"
target报告其状态的对象。