包 | air.net |
类 | public dynamic class ServiceMonitor |
继承 | ServiceMonitor EventDispatcher Object |
子类 | SocketMonitor, URLMonitor |
运行时版本: | AIR 1.0 |
此类包含在 aircore.swc 文件中。创建 Adobe® AIR™ 项目时,Adobe® Flash™ Builder™ 将自动加载此类。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
当前是否将服务视为“可用”。初始值为 false,直至状态检查将该属性设置为 true,或者该属性被明确初始化为 true。通常,此属性是由子类或专用函数中的 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 | 属性 |
running | 属性 |
ServiceMonitor | () | 构造函数 |
public function ServiceMonitor()
运行时版本: | AIR 1.0 |
创建 ServiceMonitor 对象。
通常会从此类派生子类以监视特定的服务类型。
在创建 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 和 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, 11:04 AM Z