flash.net
public class NetConnection
继承NetConnection Inheritance EventDispatcher Inheritance Object

语言版本: ActionScript 3.0
运行时版本: AIR 1.0 Flash Player 9

NetConnection 类在 Flash Player 或 AIR AIR 应用程序和 Flash Media Server 应用程序之间或在 Flash Player 或 AIR AIR 应用程序和运行 Flash Remoting 的应用程序服务器之间创建双向连接。NetConnection 对象如同客户端与服务器之间的管道。 可使用 NetStream 对象通过此管道发送流。

如果未使用 Flash Media Server,您可以使用 NetConnection 类从本地文件系统或 Web 服务器中播放视频和 MP3 文件。

有关支持的编解码器和文件格式的信息,请参阅 http://www.adobe.com/go/hardware_scaling_cnFlash Media Server 文档

在使用 NetConnection 类时,请考虑以下安全模型:

但在 Adobe AIR 中,application 安全沙箱中的内容(使用 AIR 应用程序安装的内容)不受这些安全限制的约束。

有关详细信息,请参阅以下部分:

注意:该类在 ActionScript 2.0 中是动态的,但现已将该类密封。若要为该类编写回调方法,可以扩展该类,然后在子类中定义回调方法,也可以使用 client 属性引用一个对象,然后对该对象定义回调方法。

查看示例

另请参见

client
NetStream
connect()


公共属性
 属性定义方
  client : Object
指示应对其调用回调方法的对象。
NetConnection
  connected : Boolean
[只读 (read-only)] 指示应用程序是否通过永久性的 RTMP 连接连接到服务器,如果是,则为 true,否则为 false。
NetConnection
  connectedProxyType : String
[只读 (read-only)] 用于对 Flash Media Server 进行成功 NetConnection.connect() 调用的代理类型:“none”、“HTTP”、“HTTPS”或“CONNECT”。
NetConnection
 Inheritedconstructor : Object
对类对象或给定对象实例的构造函数的引用。
Object
  defaultObjectEncoding : uint
[静态] 用于 NetConnection 对象的默认对象编码。
NetConnection
  farID : String
[只读 (read-only)] 与此 Flash Player 或 Adobe AIR 实例连接的 Flash Media Server 实例的标识符。
NetConnection
  farNonce : String
[只读 (read-only)] 由 Flash Media Server 实际选择的一个值,该值对此连接是唯一的。
NetConnection
  maxPeerConnections : uint
Flash Player 或 Adobe AIR 的此实例允许的传入和传出同级连接的总数。
NetConnection
  nearID : String
[只读 (read-only)] 用于此 NetConnection 实例的 Flash Player 或 Adobe AIR 实例的标识符。
NetConnection
  nearNonce : String
[只读 (read-only)] 由此 Flash Player 或 Adobe AIR 实例实际选择的一个值,该值对此连接是唯一的。
NetConnection
  objectEncoding : uint
此 NetConnection 实例的对象编码。
NetConnection
  protocol : String
[只读 (read-only)] 用于建立连接的协议。
NetConnection
 Inheritedprototype : Object
[静态] 对类或函数对象的原型对象的引用。
Object
  proxyType : String
确定到服务器的初始连接尝试失败后应使用的后备方法。
NetConnection
  unconnectedPeerStreams : Array
[只读 (read-only)] 一个对象,其中包含与发布方 NetStream 对象不相关的所有同级订户 NetStream 对象。
NetConnection
  uri : String
[只读 (read-only)] 传递给 NetConnection.connect() 方法的 URI。
NetConnection
  usingTLS : Boolean
[只读 (read-only)] 指示是否已使用本机传输层安全 (TLS) 而不是 HTTPS 建立了一个安全连接。
NetConnection
公共方法
 方法定义方
  
创建一个 NetConnection 对象。
NetConnection
 Inherited
addEventListener(type:String, listener:Function, useCapture:Boolean = false, priority:int = 0, useWeakReference:Boolean = false):void
使用 EventDispatcher 对象注册事件侦听器对象,以使侦听器能够接收事件通知。
EventDispatcher
  
addHeader(operation:String, mustUnderstand:Boolean = false, param:Object = null):void
将上下文标头添加到 Action Message Format (AMF) 数据包结构中。
NetConnection
  
call(command:String, responder:Responder, ... arguments):void
在 Flash Media Server 或运行 Flash Remoting 的应用程序服务器上调用一个命令或方法。
NetConnection
  
关闭本地打开的连接或到服务器的连接,并调度 code 属性值为 NetConnection.Connect.Closed 的 netStatus 事件。
NetConnection
  
connect(command:String, ... arguments):void
在 Flash Player 或 AIR 应用程序和 Flash Media Server 应用程序之间创建双向连接。
NetConnection
 Inherited
将事件调度到事件流中。
EventDispatcher
 Inherited
检查 EventDispatcher 对象是否为特定事件类型注册了任何侦听器。
EventDispatcher
 Inherited
指示对象是否已经定义了指定的属性。
Object
 Inherited
指示 Object 类的实例是否在指定为参数的对象的原型链中。
Object
 Inherited
指示指定的属性是否存在、是否可枚举。
Object
 Inherited
removeEventListener(type:String, listener:Function, useCapture:Boolean = false):void
从 EventDispatcher 对象中删除侦听器。
EventDispatcher
 Inherited
设置循环操作动态属性的可用性。
Object
 Inherited
返回指定对象的字符串表示形式。
Object
 Inherited
返回指定对象的原始值。
Object
 Inherited
检查是否用此 EventDispatcher 对象或其任何始祖为指定事件类型注册了事件侦听器。
EventDispatcher
事件
 事件 摘要 定义方
 Inherited[广播事件] Flash Player 或 AIR 应用程序获得操作系统焦点并变为活动状态时将调度此事件。EventDispatcher
  在异步引发异常(即来自本机异步代码)时调度。NetConnection
 Inherited[广播事件] Flash Player 或 AIR 应用程序失去操作系统焦点并变为非活动状态时将调度此事件。EventDispatcher
  在出现输入或输出错误并导致网络操作失败时调度。NetConnection
  在 NetConnection 对象报告其状态或错误条件时调度。NetConnection
  若对 NetConnection.call() 的调用尝试连接到调用方安全沙箱外部的服务器,则进行调度。NetConnection
属性详细信息
client属性
client:Object  [读写]

语言版本: ActionScript 3.0
运行时版本: AIR 1.0 Flash Player 9

指示应对其调用回调方法的对象。默认值为此 NetConnection 实例。如果将 client 属性设置为另一个对象,则将对该对象调用回调方法。



实现
    public function get client():Object
    public function set client(value:Object):void

引发
TypeError — 必须将 client 属性设置为非空对象。
connected属性 
connected:Boolean  [只读 (read-only)]

语言版本: ActionScript 3.0
运行时版本: AIR 1.0 Flash Player 9

指示应用程序是否通过永久性的 RTMP 连接连接到服务器,如果是,则为 true,否则为 false。通过 HTTP 进行连接时,此属性为 false;除非是连接到应用程序服务器上的 Flash Remoting 服务,此时该属性为 true



实现
    public function get connected():Boolean
connectedProxyType属性 
connectedProxyType:String  [只读 (read-only)]

语言版本: ActionScript 3.0
运行时版本: AIR 1.0 Flash Player 9

用于对 Flash Media Server 进行成功 NetConnection.connect() 调用的代理类型:“none”、“HTTP”、“HTTPS”或“CONNECT”。如果未使用隧道建立连接,则该值为“none”;如果使用隧道通过 HTTP 建立连接,则该值为“HTTP”;如果使用隧道通过 HTTPS 建立连接,则该值为“HTTPS”;如果使用隧道通过 HTTP CONNECT 方法建立连接,则该值为“CONNECT”。



实现
    public function get connectedProxyType():String

引发
ArgumentError — 已尝试在未连接 NetConnection 实例时访问此属性。
defaultObjectEncoding属性 
defaultObjectEncoding:uint  [读写]

语言版本: ActionScript 3.0
运行时版本: AIR 1.0 Flash Player 9

用于 NetConnection 对象的默认对象编码。将对象写入到二进制数据中或从二进制数据中读取对象时,defaultObjectEncoding 属性将指示对数据进行序列化处理时使用的 Action Message Format (AMF) 版本:ActionScript 3.0 格式 (ObjectEncoding.AMF3) 或 ActionScript 1.0 和 ActionScript 2.0 格式 (ObjectEncoding.AMF0)。

默认值是 ObjectEncoding.AMF3。更改 NetConnection.defaultObjectEncoding 不会影响现有 NetConnection 实例,只会影响随后创建的实例。

若要单独设置某个对象的编码(而非设置整个应用程序的对象编码),请改为设置 NetConnection 对象的 objectEncoding 属性。

有关详细信息,请参阅关于 objectEncoding 属性的描述。



实现
    public static function get defaultObjectEncoding():uint
    public function set defaultObjectEncoding(value:uint):void

另请参见

farID属性 
farID:String  [只读 (read-only)]

语言版本: ActionScript 3.0
运行时版本: Flash Player 10, AIR 1.5

与此 Flash Player 或 Adobe AIR 实例连接的 Flash Media Server 实例的标识符。此属性仅对于 RTMFP 连接才有意义。此属性的值仅在建立 RTMFP 连接之后可用。



实现
    public function get farID():String

另请参见

farNonce属性 
farNonce:String  [只读 (read-only)]

语言版本: ActionScript 3.0
运行时版本: Flash Player 10, AIR 1.5

由 Flash Media Server 实际选择的一个值,该值对此连接是唯一的。此值对服务器显示为其 client.nearNonce 值。仅为 RTMFP 连接定义此值。



实现
    public function get farNonce():String
maxPeerConnections属性 
maxPeerConnections:uint  [读写]

语言版本: ActionScript 3.0
运行时版本: Flash Player 10, AIR 1.5

Flash Player 或 Adobe AIR 的此实例允许的传入和传出同级连接的总数。默认值为 8。

此值不区分发行者连接和订户连接。如果在出现同级连接时此值减小,则新值只会影响新的传入连接。不会删除现有连接。



实现
    public function get maxPeerConnections():uint
    public function set maxPeerConnections(value:uint):void
nearID属性 
nearID:String  [只读 (read-only)]

语言版本: ActionScript 3.0
运行时版本: Flash Player 10, AIR 1.5

用于此 NetConnection 实例的 Flash Player 或 Adobe AIR 实例的标识符。此属性仅对于 RTMFP 连接才有意义。

每个 NetConnection 实例均具有一个唯一的 nearID 属性。Flash Player 或 Adobe AIR 实例或 NetConnection 实例所具有的标识符各不相同。

其他 Flash Player 或 Adobe AIR 实例将此标识符用作与此客户端的新 NetStream 连接的 peerID。随后,此标识符是连接到此实例的任何同级 NetStream 中的 farID



实现
    public function get nearID():String

另请参见

nearNonce属性 
nearNonce:String  [只读 (read-only)]

语言版本: ActionScript 3.0
运行时版本: Flash Player 10, AIR 1.5

由此 Flash Player 或 Adobe AIR 实例实际选择的一个值,该值对此连接是唯一的。此值对服务器显示为其 client.farNonce 值。仅为 RTMFP 连接定义此值。



实现
    public function get nearNonce():String
objectEncoding属性 
objectEncoding:uint  [读写]

语言版本: ActionScript 3.0
运行时版本: AIR 1.0 Flash Player 9

此 NetConnection 实例的对象编码。

将对象写入到二进制数据中或从二进制数据中读取对象时,defaultObjectEncoding 属性将指示对数据进行序列化处理时应使用的 Action Message Format (AMF) 版本:ActionScript 3.0 格式 (ObjectEncoding.AMF3) 或 ActionScript 1.0 和 ActionScript 2.0 格式 (ObjectEncoding.AMF0)。可以设置 objectEncoding 属性,以便为 NetConnection 实例设置 AMF 版本。

如果应用程序需要与在 Flash Player 9 之前发布的服务器进行通信,则了解此属性非常重要。可能存在以下三种情况:

在连接 NetConnection 实例后,其 objectEncoding 属性是只读的。

如果连接服务器时使用了错误的编码,则 NetConnection 对象将调度 netStatus 事件。NetStatusEvent.info 属性包含一个信息对象,此信息对象具有值为 NetConnection.Connect.Failedcode 属性,并包含说明对象编码不正确的描述。



实现
    public function get objectEncoding():uint
    public function set objectEncoding(value:uint):void

引发
ReferenceError — 连接 NetConnection 实例时,会尝试设置 objectEncoding 属性值。
 
ArgumentError — 此属性被设置为 ObjectEncoding.AMF0ObjectEncoding.AMF3 以外的值。

另请参见

protocol属性 
protocol:String  [只读 (read-only)]

语言版本: ActionScript 3.0
运行时版本: Flash Player 10, AIR 1.5

用于建立连接的协议。在使用 Flash Media Server 时,此属性是相关的。可能值如下:



实现
    public function get protocol():String

引发
ArgumentError — 已尝试在未连接 NetConnection 实例时访问此属性。
proxyType属性 
proxyType:String  [读写]

语言版本: ActionScript 3.0
运行时版本: AIR 1.0 Flash Player 9

确定到服务器的初始连接尝试失败后应使用的后备方法。在调用 NetConnection.connect() 方法之前,必须先设置 proxyType 属性。

可接受值为“none”“HTTP”“CONNECT”“best”

此属性的默认值为“none”;如果未更改此值,应用程序将对 RTMPS 使用 HTTPS 隧道。如果将此属性设置为“best”,客户端将尝试使用本机 SSL 进行连接。如果连接失败,客户端将尝试其它连接方法。如果将此属性设置为“HTTP”并且直接连接失败,则会使用 HTTP 隧道。如果将此属性设为“CONNECT”并且直接连接失败,则将使用隧道的 CONNECT 方法。如果后者也失败,连接不会使用备用的 HTTP 隧道方法。

仅当使用 RTMP、RTMPS 或 RTMPT 时,此属性才可用。CONNECT 方法仅适用于通过代理服务器连接到网络上的用户。



实现
    public function get proxyType():String
    public function set proxyType(value:String):void
unconnectedPeerStreams属性 
unconnectedPeerStreams:Array  [只读 (read-only)]

语言版本: ActionScript 3.0
运行时版本: Flash Player 10, AIR 1.5

一个对象,其中包含与发布方 NetStream 对象不相关的所有同级订户 NetStream 对象。与发行方的 NetStream 对象关联的订户的 NetStream 对象位于 NetStream.peerStreams 数组中。



实现
    public function get unconnectedPeerStreams():Array

另请参见

uri属性 
uri:String  [只读 (read-only)]

语言版本: ActionScript 3.0
运行时版本: AIR 1.0 Flash Player 9

传递给 NetConnection.connect() 方法的 URI。如果尚未调用 NetConnection.connect() 或者未传递任何 URI,则此属性为 undefined



实现
    public function get uri():String
usingTLS属性 
usingTLS:Boolean  [只读 (read-only)]

语言版本: ActionScript 3.0
运行时版本: AIR 1.0 Flash Player 9

指示是否已使用本机传输层安全 (TLS) 而不是 HTTPS 建立了一个安全连接。此属性仅在连接了 NetConnection 对象时有效。



实现
    public function get usingTLS():Boolean

引发
ArgumentError — 已尝试在未连接 NetConnection 实例时访问此属性。
构造函数详细信息
NetConnection()构造函数
public function NetConnection()

语言版本: ActionScript 3.0
运行时版本: AIR 1.0 Flash Player 9

创建一个 NetConnection 对象。调用 connect() 以建立连接。

如果应用程序需要与在 Flash Player 9 之前发布的服务器进行通信,则可能需要设置 NetConnection 对象的 objectEncoding 属性。

另请参见

方法详细信息
addHeader()方法
public function addHeader(operation:String, mustUnderstand:Boolean = false, param:Object = null):void

语言版本: ActionScript 3.0
运行时版本: AIR 1.0 Flash Player 9

将上下文标头添加到 Action Message Format (AMF) 数据包结构中。此标头将随以后的每个 AMF 数据包一起发送。如果使用相同的名称调用 NetConnection.addHeader(),则新标头将代替现有标头,并在 NetConnection 对象的持续时间内始终使用新标头。通过使用标头名称调用 NetConnection.addHeader() 以删除未定义的对象,可以删除标头。

参数

operation:String — 标识标头和与之相关的 ActionScript 对象数据。
 
mustUnderstand:Boolean (default = false) — 值为 true 表示服务器必须先了解和处理此标头再处理任一后续标头或消息。
 
param:Object (default = null) — 任一 ActionScript 对象。

call()方法 
public function call(command:String, responder:Responder, ... arguments):void

语言版本: ActionScript 3.0
运行时版本: AIR 1.0 Flash Player 9

在 Flash Media Server 或运行 Flash Remoting 的应用程序服务器上调用一个命令或方法。在调用 NetConnection.call() 之前,必须先调用 NetConnection.connect() 以连接到服务器。必须创建要传递给此方法的服务器端函数。

无法连接到常用的保留端口。有关已阻止的端口的完整列表,请参阅《ActionScript 3.0 编程》一书的中的“限制网络 API”。

参数

command:String — 以 [objectPath/]method 的形式指定的方法。例如,someObject/doSomething 命令将通知远程服务器调用 clientObject.someObject.doSomething() 方法,并带有所有可选的 ... arguments 参数。如果缺少对象路径,则将在远程服务器上调用 clientObject.doSomething()

如果使用 Flash Media Server,command 是在应用程序的服务器端脚本中定义的函数的名称。如果将服务器端脚本放在应用程序目录的根级别,则不需要在 command 前面使用对象路径。

 
responder:Responder — 可选对象,用于处理服务器的返回值。Responder 对象可以用两个定义的方法来处理返回的结果:resultstatus。如果返回的结果为错误,则将调用 status;否则,将调用 result。Responder 对象可以处理与特定操作有关的错误,而 NetConnection 对象则响应与连接状态有关的错误。
 
... arguments — 可选参数,可以为任一 ActionScript 类型,并包括对另一个 ActionScript 对象的引用。当在远程应用程序服务器上执行 command 参数中指定的方法时,这些参数将被传递给该方法。


事件
securityError:SecurityErrorEvent — 尝试与位于调用方安全沙箱外部的服务器进行通信的调用。可通过在服务器上使用策略文件来避免出现此问题。
close()方法 
public function close():void

语言版本: ActionScript 3.0
运行时版本: AIR 1.0 Flash Player 9

关闭本地打开的连接或到服务器的连接,并调度 code 属性值为 NetConnection.Connect.ClosednetStatus 事件。

此方法断开在此连接上运行的所有 NetStream 对象。队列中尚未发送的所有数据将被丢弃。(若要终止本地或服务器流而不关闭连接,请使用 NetStream.close()。)如果关闭连接,然后要创建一个新连接,则必须创建新的 NetConnection 对象并再次调用 connect() 方法。

close() 方法还会断开在此连接上运行的所有远程共享对象。不过,不必重新创建要重新连接的共享对象, 您只需调用 SharedObject.connect() 以重新建立到共享对象的连接。此外,在发出 NetConnection.close() 时排在队列中的共享对象中的任何数据都将在重建与共享对象的连接之后发送。

如果使用 Flash Media Server,最佳开发做法是在客户端不再需要到服务器的连接时调用 close()。调用 close() 是清除未使用的连接的最快捷方法。作为一种替代方法,您可以将服务器配置为自动关闭空闲连接。有关详细信息,请参阅 Flash Media Server Configuration and Administration Guide(《Flash Media Server 配置和管理指南》)。

另请参见

connect()方法 
public function connect(command:String, ... arguments):void

语言版本: ActionScript 3.0
运行时版本: AIR 1.0 Flash Player 9

Flash Player 或 AIR AIR 应用程序和 Flash Media Server 应用程序之间创建双向连接。NetConnection 对象如同客户端与服务器之间的管道。 可使用 NetStream 对象通过此管道发送流。有关 Flash Media Server 支持的编解码器和文件格式的信息,请参阅 Flash Media Server 文档

如果未使用 Flash Media Server,请调用 NetConnection.connect(),以便从本地文件系统或 Web 服务器中播放视频和 MP3 文件。有关支持的编解码器和文件格式的信息,请参阅 http://www.adobe.com/go/hardware_scaling_cn

Flash Player 或 AIR AIR 应用程序和运行 Flash Remoting 服务的应用程序之间创建双向连接。可使用 NetServices 类通过 NetConnection 对象调用应用程序服务器函数,并返回结果。 有关详细信息,请参阅 Flash Remoting 文档

在使用此方法时,请考虑以下安全模型:

但在 Adobe AIR 中,application 安全沙箱中的内容(使用 AIR 应用程序安装的内容)不受这些安全限制的约束。

有关详细信息,请参阅以下部分:

参数

command:String — 如果要连接到本地计算机上的视频文件,请将此参数设置为 null。 如果要连接到服务器,则将此参数设置为包含服务器上视频文件的应用程序的 URI。应使用以下语法(方括号中的项是可选的):

protocol:[//host][:port]/appname[/instanceName]

若要连接到 Flash Media Server,请使用 rtmprtmpertmpsrtmptrtmptertmfp 作为协议。如果连接成功,则会返回 code 属性值为 NetConnection.Connect.SuccessnetStatus 事件。有关为响应 connect() 调用而返回的所有事件代码的列表,请参阅 NetStatusEvent.info 属性。

如果 文件是从安装服务器的同一台主机中提供的,则可以省略 host 参数。如果省略 instanceName 参数,Flash Player 或 AIR 将连接到应用程序的默认实例。

 
... arguments — 要传递给 command 中指定的应用程序的任意类型可选参数。如果使用 Flash Media Server,会将额外的参数传递给应用程序服务器端代码中的 application.onConnect() 事件处理函数。您必须在 onConnect() 中定义并处理这些参数。


引发
ArgumentError — 传递给 command 参数的 URI 格式不正确。
 
IOError — 连接失败。这可能是由于从 netStatus 事件处理函数中调用了 connect(),而这是不允许的。
 
SecurityError — 与本地文件系统内容交互的 SWF 文件无法与 Internet 进行通信。可通过将此 SWF 文件重新分类为只能与远程内容交互或受信任来避免出现这种问题。
 
SecurityError — 如果尝试连接到常用的保留端口。有关已阻止的端口的完整列表,请参阅《ActionScript 3.0 编程》一书的“安全性”一章中的“限制网络 API”。

另请参见

事件详细信息
asyncError 事件
事件对象类型: flash.events.AsyncErrorEvent
属性 AsyncErrorEvent.type = flash.events.AsyncErrorEvent.ASYNC_ERROR

语言版本: ActionScript 3.0
运行时版本: AIR 1.0 Flash Player 9

在异步引发异常(即来自本机异步代码)时调度。

AsyncErrorEvent.ASYNC_ERROR 常数定义 asyncError 事件对象的 type 属性值。

此事件具有以下属性:

属性
bubbles false 此属性适用于 ActionScript 3.0 显示对象(在 SWF 文件中)。
cancelable false;没有要取消的默认行为。此属性适用于 SWF 内容中使用 ActionScript 3.0 显示体系结构的显示对象。
currentTarget 当前正在使用某个事件侦听器处理 Event 对象的对象。 此属性适用于 SWF 内容中使用 ActionScript 3.0 显示体系结构的显示对象。
target 调度事件的对象。
error 触发此事件的错误。
ioError 事件  
事件对象类型: flash.events.IOErrorEvent
属性 IOErrorEvent.type = flash.events.IOErrorEvent.IO_ERROR

语言版本: ActionScript 3.0
运行时版本: AIR 1.0 Flash Player 9

在出现输入或输出错误并导致网络操作失败时调度。

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

此事件具有以下属性:

属性
bubbles false
cancelable false;没有要取消的默认行为。
currentTarget 当前正在使用某个事件侦听器处理 Event 对象的对象。
errorID 与特定错误关联的引用编号(仅限 AIR)。
target 发生输入/输出错误的网络对象。
text 要显示为错误消息的文本。
netStatus 事件  
事件对象类型: flash.events.NetStatusEvent
属性 NetStatusEvent.type = flash.events.NetStatusEvent.NET_STATUS

语言版本: ActionScript 3.0
运行时版本: AIR 1.0 Flash Player 9

在 NetConnection 对象报告其状态或错误条件时调度。netStatus 事件包含一个 info 属性,该属性是一个包含事件特定信息(例如,连接尝试成功还是失败)的信息对象。

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

此事件具有以下属性:

属性
bubbles false
cancelable false;没有要取消的默认行为。
currentTarget 当前正在使用某个事件侦听器处理 Event 对象的对象。
info 一个对象,具有描述对象的状态或错误情况的属性。
target 报告其状态的 NetConnection 或 NetStream 对象。

另请参见

securityError 事件  
事件对象类型: flash.events.SecurityErrorEvent
属性 SecurityErrorEvent.type = flash.events.SecurityErrorEvent.SECURITY_ERROR

语言版本: ActionScript 3.0
运行时版本: AIR 1.0 Flash Player 9

若对 NetConnection.call() 的调用尝试连接到调用方安全沙箱外部的服务器,则进行调度。

SecurityErrorEvent.SECURITY_ERROR 常量定义 securityError 事件对象的 type 属性值。

此事件具有以下属性:

属性
bubbles false
cancelable false;没有要取消的默认行为。
currentTarget 当前正在使用某个事件侦听器处理 Event 对象的对象。
target 报告安全错误的网络对象。
text 要显示为错误消息的文本。

另请参见

示例 如何使用示例
NetConnectionExample.as

以下示例将 Video 对象与 NetConnection 和 NetStream 类一同使用,以加载和播放 FLV 文件。若要运行此示例,需要一个 FLV 文件,其名称和位置与传递给 videoURL 的变量匹配,在本例中,名为 Video.flv 的 FLV 文件与 SWF 文件在同一个目录中。

在本例中,创建 Video 和 NetStream 对象并调用 Video.attachNetStream()NetStream.play() 方法的代码放在处理函数中。仅当连接到 NetConnection 对象的尝试取得成功时才调用处理函数,即,当 netStatus 事件返回 info 对象(带有一个表示成功的 code 属性)时,才调用该处理函数。建议您在调用 NetStream.play() 之前,等待连接成功。

package {
    import flash.display.Sprite;
    import flash.events.NetStatusEvent;
    import flash.events.SecurityErrorEvent;
    import flash.media.Video;
    import flash.net.NetConnection;
    import flash.net.NetStream;
    import flash.events.Event;

    public class NetConnectionExample extends Sprite {
        private var videoURL:String = "Video.flv";
        private var connection:NetConnection;
        private var stream:NetStream;

        public function NetConnectionExample() {
            connection = new NetConnection();
            connection.addEventListener(NetStatusEvent.NET_STATUS, netStatusHandler);
            connection.addEventListener(SecurityErrorEvent.SECURITY_ERROR, securityErrorHandler);
            connection.connect(null);
        }

        private function netStatusHandler(event:NetStatusEvent):void {
            switch (event.info.code) {
                case "NetConnection.Connect.Success":
                    connectStream();
                    break;
                case "NetStream.Play.StreamNotFound":
                    trace("Stream not found: " + videoURL);
                    break;
            }
        }

        private function securityErrorHandler(event:SecurityErrorEvent):void {
            trace("securityErrorHandler: " + event);
        }

        private function connectStream():void {
            var stream:NetStream = new NetStream(connection);
            stream.addEventListener(NetStatusEvent.NET_STATUS, netStatusHandler);
            stream.client = new CustomClient();
            var video:Video = new Video();
            video.attachNetStream(stream);
            stream.play(videoURL);
            addChild(video);
        }
    }
}

class CustomClient {
    public function onMetaData(info:Object):void {
        trace("metadata: duration=" + info.duration + " width=" + info.width + " height=" + info.height + " framerate=" + info.framerate);
    }
    public function onCuePoint(info:Object):void {
        trace("cuepoint: time=" + info.time + " name=" + info.name + " type=" + info.type);
    }
}