| 包 | flash.net |
| 类 | public class NetConnection |
| 继承 | NetConnection EventDispatcher Object |
| 语言版本: | ActionScript 3.0 |
| 运行时版本: | AIR 1.0 Flash Player 9 |
如果未使用 Flash Media Server,您可以使用 NetConnection 类从本地文件系统或 Web 服务器中播放视频和 MP3 文件。
有关支持的编解码器和文件格式的信息,请参阅 http://www.adobe.com/go/hardware_scaling_cn 和 Flash Media Server 文档。
在使用 NetConnection 类时,请考虑以下安全模型:
但在 Adobe AIR 中,application 安全沙箱中的内容(使用 AIR 应用程序安装的内容)不受这些安全限制的约束。
有关详细信息,请参阅以下部分:
注意:该类在 ActionScript 2.0 中是动态的,但现已将该类密封。若要为该类编写回调方法,可以扩展该类,然后在子类中定义回调方法,也可以使用 client 属性引用一个对象,然后对该对象定义回调方法。
另请参见
| 属性 | 定义方 | ||
|---|---|---|---|
| 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 | ||
![]() | constructor : 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 | ||
![]() | prototype : 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 | ||
![]() | addEventListener(type:String, listener:Function, useCapture:Boolean = false, priority:int = 0, useWeakReference:Boolean = false):void 使用 EventDispatcher 对象注册事件侦听器对象,以使侦听器能够接收事件通知。 | EventDispatcher | |
将上下文标头添加到 Action Message Format (AMF) 数据包结构中。 | NetConnection | ||
在 Flash Media Server 或运行 Flash Remoting 的应用程序服务器上调用一个命令或方法。 | NetConnection | ||
关闭本地打开的连接或到服务器的连接,并调度 code 属性值为 NetConnection.Connect.Closed 的 netStatus 事件。 | NetConnection | ||
在 Flash Player 或 AIR 应用程序和 Flash Media Server 应用程序之间创建双向连接。 | NetConnection | ||
![]() | 将事件调度到事件流中。 | EventDispatcher | |
![]() | 检查 EventDispatcher 对象是否为特定事件类型注册了任何侦听器。 | EventDispatcher | |
![]() |
指示对象是否已经定义了指定的属性。 | Object | |
![]() |
指示 Object 类的实例是否在指定为参数的对象的原型链中。 | Object | |
![]() |
指示指定的属性是否存在、是否可枚举。 | Object | |
![]() | 从 EventDispatcher 对象中删除侦听器。 | EventDispatcher | |
![]() |
设置循环操作动态属性的可用性。 | Object | |
![]() |
返回指定对象的字符串表示形式。 | Object | |
![]() |
返回指定对象的原始值。 | Object | |
![]() | 检查是否用此 EventDispatcher 对象或其任何始祖为指定事件类型注册了事件侦听器。 | EventDispatcher | |
| 事件 | 摘要 | 定义方 | ||
|---|---|---|---|---|
![]() | [广播事件] Flash Player 或 AIR 应用程序获得操作系统焦点并变为活动状态时将调度此事件。 | EventDispatcher | ||
| 在异步引发异常(即来自本机异步代码)时调度。 | NetConnection | |||
![]() | [广播事件] 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):voidTypeError —
必须将 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():StringArgumentError — 已尝试在未连接 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 之前发布的服务器进行通信,则了解此属性非常重要。可能存在以下三种情况:
defaultObjectEncoding 的默认值是 ObjectEncoding.AMF3。在此文件中创建的所有 NetConnection 实例均使用 AMF3 序列化,因此无需设置 objectEncoding 属性。
NetConnection.defaultObjectEncoding 属性设置为 ObjectEncoding.AMF0。在此 SWF 文件中创建的所有 NetConnection 实例均使用 AMF0 序列化。因此不必设置 objectEncoding 属性。
defaultObjectEncoding,而是使用每个连接的 objectEncoding 属性设置每个连接的对象编码。若要连接到使用 AMF0 编码的服务器(如 Flash Media Server 2),请将其设置为 ObjectEncoding.AMF0;若要连接到使用 AMF3 编码的服务器(如 Flex Data Services 2),请将其设置为 ObjectEncoding.AMF3。
在连接 NetConnection 实例后,其 objectEncoding 属性是只读的。
如果连接服务器时使用了错误的编码,则 NetConnection 对象将调度 netStatus 事件。NetStatusEvent.info 属性包含一个信息对象,此信息对象具有值为 NetConnection.Connect.Failed 的 code 属性,并包含说明对象编码不正确的描述。
public function get objectEncoding():uint public function set objectEncoding(value:uint):voidReferenceError —
连接 NetConnection 实例时,会尝试设置 objectEncoding 属性值。
| |
ArgumentError —
此属性被设置为 ObjectEncoding.AMF0 或 ObjectEncoding.AMF3 以外的值。
|
另请参见
| protocol | 属性 |
protocol:String [只读 (read-only)] | 语言版本: | ActionScript 3.0 |
| 运行时版本: | Flash Player 10, AIR 1.5 |
用于建立连接的协议。在使用 Flash Media Server 时,此属性是相关的。可能值如下:
"rtmp":实时消息传递协议 (RTMP)
"rtmpe":加密的 RTMP
"rtmpt":HTTP 隧道 RTMP
"rtmpte":HTTP 隧道加密的 RTMP
"rtmps":基于 HTTPS 的 RTMP
"rtmfp":实时媒体流协议 (RTMFP)
public function get protocol():StringArgumentError — 已尝试在未连接 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():BooleanArgumentError — 已尝试在未连接 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, | |
responder:Responder —
可选对象,用于处理服务器的返回值。Responder 对象可以用两个定义的方法来处理返回的结果:result 和 status。如果返回的结果为错误,则将调用 status;否则,将调用 result。Responder 对象可以处理与特定操作有关的错误,而 NetConnection 对象则响应与连接状态有关的错误。
| |
... arguments —
可选参数,可以为任一 ActionScript 类型,并包括对另一个 ActionScript 对象的引用。当在远程应用程序服务器上执行 command 参数中指定的方法时,这些参数将被传递给该方法。
|
securityError: — 尝试与位于调用方安全沙箱外部的服务器进行通信的调用。可通过在服务器上使用策略文件来避免出现此问题。 |
| close | () | 方法 |
public function close():void| 语言版本: | ActionScript 3.0 |
| 运行时版本: | AIR 1.0 Flash Player 9 |
关闭本地打开的连接或到服务器的连接,并调度 code 属性值为 NetConnection.Connect.Closed 的 netStatus 事件。
此方法断开在此连接上运行的所有 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 文档。
在使用此方法时,请考虑以下安全模型:
NetConnection.connect()。
object 和 embed 标签的 allowNetworking 参数,防止 SWF 文件使用此方法。
但在 Adobe AIR 中,application 安全沙箱中的内容(使用 AIR 应用程序安装的内容)不受这些安全限制的约束。
有关详细信息,请参阅以下部分:
参数
command:String —
如果要连接到本地计算机上的视频文件,请将此参数设置为 null。 如果要连接到服务器,则将此参数设置为包含服务器上视频文件的应用程序的 URI。应使用以下语法(方括号中的项是可选的):
若要连接到 Flash Media Server,请使用
如果 文件是从安装服务器的同一台主机中提供的,则可以省略 | |
... 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.AsyncErrorEventflash.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.IOErrorEventflash.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.NetStatusEventflash.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.SecurityErrorEventflash.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
| 要显示为错误消息的文本。 |
另请参见
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);
}
}