包 | flash.net.dns |
类 | public class DNSResolver |
继承 | DNSResolver EventDispatcher Object |
语言版本: | ActionScript 3.0 |
运行时版本: | AIR 2 |
AIR 配置文件支持:所有桌面操作系统均支持此功能,但移动设备不支持此功能。AIR for TV 设备仅部分支持此功能。您可以使用 DNSResolver.isSupported
属性在运行时测试是否受支持。有关在多个配置文件之间支持 API 的详细信息,请参阅 AIR 配置文件支持。
可查找下列类型的资源记录:
- ARecord:主机的 IPv4 地址。
- AAAARecord:主机的 IPv6 地址。
- MXRecord:主机的邮件交换记录。
- PTRRecord:与 IP 地址对应的主机名。
- SRVRecord:服务的服务记录
下表表明了 AIR for TV 设备上的 DNS 查找支持情况。不支持的请求导致 DNSResolver 对象调度 flash.events.ErrorEvent 对象。
DNSResolver.lookup() 中指定的记录类型 | 支持 |
---|---|
ARecord | 完全支持 |
AAAARecord | 完全支持 |
MXRecord | 不支持 |
PTRRecord | 仅支持 IPv4 地址,不支持 IPv6 地址 |
SRVRecord | 不支持 |
相关 API 元素
公共属性
属性 | 由以下参数定义 | ||
---|---|---|---|
constructor : Object
对类对象或给定对象实例的构造函数的引用。 | Object | ||
isSupported : Boolean [静态] [只读]
表示客户端系统是否支持 DNS 查找。 | DNSResolver |
公共方法
方法 | 由以下参数定义 | ||
---|---|---|---|
创建 DNSResolver 对象。 | DNSResolver | ||
addEventListener(type:String, listener:Function, useCapture:Boolean = false, priority:int = 0, useWeakReference:Boolean = false):void
使用 EventDispatcher 对象注册事件侦听器对象,以使侦听器能够接收事件通知。 | EventDispatcher | ||
将事件调度到事件流中。 | EventDispatcher | ||
检查 EventDispatcher 对象是否为特定事件类型注册了任何侦听器。 | EventDispatcher | ||
表示对象是否已经定义了指定的属性。 | Object | ||
表示 Object 类的实例是否在指定为参数的对象的原型链中。 | Object | ||
根据查询字符串查找 DNS 资源记录。 | DNSResolver | ||
表示指定的属性是否存在、是否可枚举。 | Object | ||
从 EventDispatcher 对象中删除侦听器。 | EventDispatcher | ||
设置循环操作动态属性的可用性。 | Object | ||
返回此对象的字符串表示形式,其格式设置遵守区域设置特定的约定。 | Object | ||
返回指定对象的字符串表示形式。 | Object | ||
返回指定对象的原始值。 | Object | ||
检查是否用此 EventDispatcher 对象或其任何祖代为指定事件类型注册了事件侦听器。 | EventDispatcher |
事件
事件 | 摘要 | 由以下参数定义 | ||
---|---|---|---|---|
[广播事件] Flash Player 或 AIR 应用程序获得操作系统焦点并变为活动状态时将调度此事件。 | EventDispatcher | |||
[广播事件] Flash Player 或 AIR 应用程序失去操作系统焦点并变为非活动状态时将调度此事件。 | EventDispatcher | |||
在 DNS 查找期间发生错误时调度。 | DNSResolver | |||
在 DNS 查找完成时调度。 | DNSResolver |
属性详细信息
isSupported | 属性 |
构造函数详细信息
DNSResolver | () | 构造函数 |
public function DNSResolver()
语言版本: | ActionScript 3.0 |
运行时版本: | AIR 2 |
创建 DNSResolver 对象。
方法详细信息
lookup | () | 方法 |
public function lookup(host:String, recordType:Class):void
语言版本: | ActionScript 3.0 |
运行时版本: | AIR 2 |
根据查询字符串查找 DNS 资源记录。
lookup()
方法执行异步 DNS 查找。侦听查找事件以获取查找结果。侦听错误事件以接收错误。在 DNSResolverEvent 对象中调度结果。
要指定要查找的资源记录的类型,请将相应的类传递到 recordType
参数中。(传递类名称本身,而不是传递包含类名称的字符串。)
传递到方法的查询字符串的内容取决于要查找的资源记录的类型。以下列表列出了用于每种记录类型的查询字符串。
记录类型 | 查询字符串 | 示例 |
---|---|---|
ARecord | 主机名 | "example.com" |
AAAARecord | 主机名 | "example.com" |
MXRecord | 主机名 | "example.com" |
PTRRecord | IP 地址 | "208.77.188.166" |
SRVRecord | _service._protocol.host. | "_sip._tcp.example.com." |
参数
host:String — 查询字符串,如主机名、IP 地址或服务定位器等。
| |
recordType:Class — 表示要查找的 DNS 资源记录的类型的类。
|
事件
lookup: — 当查找成功完成时进行调度。
| |
error: — 当查找失败时(包括不存在记录的情况)调度。
|
引发
ArgumentError — host 参数值不是适当的查询字符串,或者未识别 recordType 类。
|
相关 API 元素
事件详细信息
error | 事件 |
事件对象类型:
属性 ErrorEvent.type =
flash.events.ErrorEvent
属性 ErrorEvent.type =
flash.events.ErrorEvent.ERROR
语言版本: | ActionScript 3.0 |
运行时版本: | AIR 2 |
在 DNS 查找期间发生错误时调度。
定义error
事件对象的 type
属性值。
此事件具有以下属性:
属性 | 值 |
---|---|
bubbles | false |
cancelable | false ;没有要取消的默认行为。 |
currentTarget | 当前正在使用某个事件侦听器处理 Event 对象的对象。 |
target | 发生网络操作失败的对象。 |
text | 要显示为错误消息的文本。 |
lookup | 事件 |
事件对象类型:
属性 DNSResolverEvent.type =
flash.events.DNSResolverEvent
属性 DNSResolverEvent.type =
flash.events.DNSResolverEvent.LOOKUP
语言版本: | ActionScript 3.0 |
运行时版本: | AIR 2 |
在 DNS 查找完成时调度。
定义lookup
事件对象的 type
属性值。
示例 如何使用本示例
DNSResolverExample.as
以下示例显示了如何查找支持的 DNS 记录类型:
package { import flash.desktop.NativeApplication; import flash.display.Sprite; import flash.events.DNSResolverEvent; import flash.events.ErrorEvent; import flash.events.Event; import flash.events.MouseEvent; import flash.net.dns.AAAARecord; import flash.net.dns.ARecord; import flash.net.dns.DNSResolver; import flash.net.dns.MXRecord; import flash.net.dns.PTRRecord; import flash.net.dns.SRVRecord; import flash.utils.getQualifiedClassName; public class DNSResolverExample extends Sprite { private var resolver:DNSResolver = new DNSResolver(); public function DNSResolverExample() { resolver.addEventListener( DNSResolverEvent.LOOKUP, lookupComplete ); resolver.addEventListener( ErrorEvent.ERROR, lookupError ); //Look up records resolver.lookup( "www.example.com", ARecord ); resolver.lookup( "example.com", AAAARecord ); resolver.lookup( "example.com", MXRecord ); resolver.lookup( "208.77.188.166", PTRRecord ); resolver.lookup( "127.0.0.1", PTRRecord ); resolver.lookup( "2001:1890:110b:1e19:f06b:72db:7026:3d7a", PTRRecord ); resolver.lookup( "_sip._tcp.example.com.", SRVRecord ); resolver.lookup( "www.example.com", ARecord ); this.stage.nativeWindow.activate(); } private function lookupComplete( event:DNSResolverEvent ):void { trace( "Query string: " + event.host ); trace( "Record type: " + flash.utils.getQualifiedClassName( event.resourceRecords[0] ) + ", count: " + event.resourceRecords.length ); for each( var record in event.resourceRecords ) { if( record is ARecord ) trace( record.name + " : " + record.address ); if( record is AAAARecord ) trace( record.name + " : " + record.address ); if( record is MXRecord ) trace( record.name + " : " + record.exchange + ", " + record.preference ); if( record is PTRRecord ) trace( record.name + " : " + record.ptrdName ); if( record is SRVRecord ) trace( record.name + " : " + record.target + ", " + record.port + ", " + record.priority + ", " + record.weight ); } } private function lookupError( error:ErrorEvent ):void { trace("Error: " + error.text ); } } }
Tue Jun 12 2018, 11:04 AM Z