| window.runtime 属性 | window.runtime.flash.net.NetConnection |
| 继承 | NetConnection EventDispatcher Object |
如果未使用 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)]
如果连接成功,则指示使用的是哪种连接方法:直接连接、CONNECT 方法还是 HTTP 隧道。 | NetConnection | ||
![]() | constructor : Object
对类对象或给定对象实例的构造函数的引用。 | Object | |
| defaultObjectEncoding : uint [静态]
用于 NetConnection 对象的默认对象编码。 | NetConnection | ||
| objectEncoding : uint
此 NetConnection 实例的对象编码。 | NetConnection | ||
![]() | prototype : Object [静态]
对类或函数对象的原型对象的引用。 | Object | |
| proxyType : String
确定到服务器的初始连接尝试失败后应使用的后备方法。 | 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 | ||
![]() | dispatchEvent(event:Event):Boolean
将事件调度到事件流中。 | EventDispatcher | |
![]() | hasEventListener(type:String):Boolean
检查 EventDispatcher 对象是否为特定事件类型注册了任何侦听器。 | EventDispatcher | |
![]() | hasOwnProperty(name:String):Boolean
指示对象是否已经定义了指定的属性。 | Object | |
![]() | isPrototypeOf(theClass:Object):Boolean
指示 Object 类的实例是否在指定为参数的对象的原型链中。 | Object | |
![]() | propertyIsEnumerable(name:String):Boolean
指示指定的属性是否存在、是否可枚举。 | Object | |
![]() | removeEventListener(type:String, listener:Function, useCapture:Boolean = false):void
从 EventDispatcher 对象中删除侦听器。 | EventDispatcher | |
![]() | setPropertyIsEnumerable(name:String, isEnum:Boolean = true):void
设置循环操作动态属性的可用性。 | Object | |
![]() | toString():String
返回指定对象的字符串表示形式。 | Object | |
![]() | valueOf():Object
返回指定对象的原始值。 | Object | |
![]() | willTrigger(type:String):Boolean
检查是否用此 EventDispatcher 对象或其任何始祖为指定事件类型注册了事件侦听器。 | EventDispatcher | |
| 事件 | 摘要 | 定义方 | ||
|---|---|---|---|---|
![]() | Flash Player 或 AIR 应用程序获得操作系统焦点并变为活动状态时调度。 | EventDispatcher | ||
| 在异步引发异常(即来自本机异步代码)时调度。 | NetConnection | |||
![]() | Flash Player 或 AIR 应用程序失去操作系统焦点并变为非活动状态时调度。 | EventDispatcher | ||
| 在出现输入或输出错误并导致网络操作失败时调度。 | NetConnection | |||
| 在 NetConnection 对象报告其状态或错误条件时调度。 | NetConnection | |||
| 若对 NetConnection.call() 的调用尝试连接到调用方安全沙箱外部的服务器,则进行调度。 | NetConnection | |||
| client | 属性 |
client:Object [读写]
指示应对其调用回调方法的对象。默认值为此 NetConnection 实例。如果将 client 属性设置为另一个对象,则将对该对象调用回调方法。
TypeError — 必须将 client 属性设置为非空对象。
|
| connected | 属性 |
connected:Boolean [只读 (read-only)]
指示应用程序是否通过永久性的 RTMP 连接连接到服务器,如果是,则为 true,否则为 false。通过 HTTP 进行连接时,此属性为 false;除非是连接到应用程序服务器上的 Flash Remoting 服务,此时该属性为 true。
| connectedProxyType | 属性 |
connectedProxyType:String [只读 (read-only)]
如果连接成功,则指示使用的是哪种连接方法:直接连接、CONNECT 方法还是 HTTP 隧道。 可能值为“none”、“HTTP”、“HTTPS”和“CONNECT”。此属性仅在连接了 NetConnection 对象时有效。 此属性用于 Flex 应用程序和 Flash Media Server 应用程序。 仅当使用 RTMP、RTMPS 或 RTMPT 时,此属性才可用。CONNECT 方法仅适用于通过代理服务器连接到网络上的用户。
可以读取此属性以确定使用的是哪种连接方法。 如果使用的是直接连接方法,则此属性返回“none”;如果使用的是 HTTP 隧道方法,则此属性返回“HTTP”;如果使用的是安全 HTTPS 隧道方法,则此属性返回“HTTPS”;如果使用的是代理 CONNECT 方法,则此属性返回“CONNECT”。
ArgumentError — 已尝试在未连接 NetConnection 实例时访问此属性。
|
| defaultObjectEncoding | 属性 |
defaultObjectEncoding:uint [读写]
用于 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 属性的描述。
另请参见
| objectEncoding | 属性 |
objectEncoding:uint [读写] 此 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 属性,并包含说明对象编码不正确的描述。
ReferenceError — 连接 NetConnection 实例时,会尝试设置 objectEncoding 属性值。
| |
ArgumentError — 此属性被设置为 ObjectEncoding.AMF0 或 ObjectEncoding.AMF3 以外的值。
|
另请参见
| proxyType | 属性 |
proxyType:String [读写]
确定到服务器的初始连接尝试失败后应使用的后备方法。在调用 NetConnection.connect() 方法之前,必须先设置 proxyType 属性。
可接受值为“none”、“HTTP”、“CONNECT”和“best”。
此属性的默认值为“none”;如果未更改此值,应用程序将对 RTMPS 使用 HTTPS 隧道。如果将此属性设置为“best”,客户端将尝试使用本机 SSL 进行连接。如果连接失败,客户端将尝试其它连接方法。 如果将此属性设置为“HTTP”并且直接连接失败,则会使用 HTTP 隧道。如果将此属性设为“CONNECT”并且直接连接失败,则将使用隧道的 CONNECT 方法。如果后者也失败,连接不会使用备用的 HTTP 隧道方法。
仅当使用 RTMP、RTMPS 或 RTMPT 时,此属性才可用。CONNECT 方法仅适用于通过代理服务器连接到网络上的用户。
| uri | 属性 |
uri:String [只读 (read-only)]
传递给 NetConnection.connect() 方法的 URI。如果尚未调用 NetConnection.connect() 或者未传递任何 URI,则此属性为 undefined。
| usingTLS | 属性 |
usingTLS:Boolean [只读 (read-only)] 指示是否已使用本机传输层安全 (TLS) 而不是 HTTPS 建立了一个安全连接。此属性仅在连接了 NetConnection 对象时有效。
ArgumentError — 已尝试在未连接 NetConnection 实例时访问此属性。
|
| NetConnection | () | 构造函数 |
function NetConnection()
创建一个 NetConnection 对象。调用 connect() 以建立连接。
如果应用程序需要与在 Flash Player 9 之前发布的服务器进行通信,则可能需要设置 NetConnection 对象的 objectEncoding 属性。
另请参见
| addHeader | () | 方法 |
function addHeader(operation:String, mustUnderstand:Boolean = false, param:Object = null):void
将上下文标头添加到 Action Message Format (AMF) 数据包结构中。此标头将随以后的每个 AMF 数据包一起发送。如果使用相同的名称调用 NetConnection.addHeader(),则新标头将代替现有标头,并在 NetConnection 对象的持续时间内始终使用新标头。通过使用标头名称调用 NetConnection.addHeader() 以删除未定义的对象,可以删除标头。
参数
operation:String — 标识标头和与之相关的 ActionScript 对象数据。
| |
mustUnderstand:Boolean (default = false) — 值为 true 表示服务器必须先了解和处理此标头再处理任一后续标头或消息。
| |
param:Object (default = null) — 任一 ActionScript 对象。
|
| call | () | 方法 |
function call(command:String, responder:Responder, ... arguments):void
在 Flash Media Server 或运行 Flash Remoting 的应用程序服务器上调用一个命令或方法。在调用 NetConnection.call() 之前,必须先调用 NetConnection.connect() 以连接到服务器。必须创建要传递给此方法的服务器端函数。
参数
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 | () | 方法 |
function close():void
关闭本地打开的连接或到服务器的连接,并调度 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 | () | 方法 |
function connect(command:String, ... arguments):void在 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 文件重新分类为只能与远程内容交互或受信任来避免出现这种问题。
|
另请参见
| asyncError | 事件 |
flash.events.AsyncErrorEventflash.events.AsyncErrorEvent.ASYNC_ERROR在异步引发异常(即来自本机异步代码)时调度。
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在出现输入或输出错误并导致网络操作失败时调度。
定义ioError 事件对象的 type 属性值。
此事件具有以下属性:
| 属性 | 值 |
|---|---|
bubbles | false |
cancelable | false;没有要取消的默认行为。 |
currentTarget | 当前正在使用某个事件侦听器处理 Event 对象的对象。 |
errorID | 与特定错误关联的引用数字。 |
target | 发生输入/输出错误的网络对象。 |
text | 要显示为错误消息的文本。 |
| netStatus | 事件 |
flash.events.NetStatusEventflash.events.NetStatusEvent.NET_STATUS
在 NetConnection 对象报告其状态或错误条件时调度。netStatus 事件包含一个 info 属性,该属性是一个包含事件特定信息(例如,连接尝试成功还是失败)的信息对象。
netStatus 事件对象的 type 属性值。
此事件具有以下属性:
| 属性 | 值 |
|---|---|
bubbles | false |
cancelable | false;没有要取消的默认行为。 |
currentTarget | 当前正在使用某个事件侦听器处理 Event 对象的对象。 |
info | 一个对象,具有描述对象的状态或错误情况的属性。 |
target | 报告其状态的 NetConnection 或 NetStream 对象。 |
另请参见
| securityError | 事件 |
flash.events.SecurityErrorEventflash.events.SecurityErrorEvent.SECURITY_ERROR
若对 NetConnection.call() 的调用尝试连接到调用方安全沙箱外部的服务器,则进行调度。
SecurityErrorEvent.SECURITY_ERROR 常量定义 securityError 事件对象的 type 属性值。
此事件具有以下属性:
| 属性 | 值 |
|---|---|
bubbles | false |
cancelable | false;没有要取消的默认行为。 |
currentTarget | 当前正在使用某个事件侦听器处理 Event 对象的对象。 |
target | 报告安全错误的网络对象。 |
text | 要显示为错误消息的文本。 |
另请参见