用于 Adobe® Flash® Platform 的 ActionScript® 3.0 参考
主页  |  隐藏包列表和类列表 |   |   |  新增内容  |  索引  |  附录  |  为什么显示为英语?
过滤条件: 正在从服务器检索数据...
正在从服务器检索数据...
flash.net 

NetConnection  - AS3

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

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

NetConnection 类在客户端和服务器之间创建双向连接。客户端可以是 Flash Player 或 AIR 应用程序。服务器可以是 Web 服务器、Flash Media Server、运行 Flash Remoting 的应用程序服务器或 Adobe 状态服务。调用 NetConnection.connect() 以建立连接。使用 NetStream 通过该连接发送媒体流和数据。

有关向 Flash Player 和 AIR 中加载内容和数据的安全性信息,请参阅以下内容:

要为该类编写回调方法,可以扩展该类,然后在子类中定义回调方法,或将 client 属性分配给某个对象,然后对该对象定义回调方法。

查看示例

相关 API 元素



公共属性
 属性由以下参数定义
  client : Object
表示对其调用回调方法的对象。
NetConnection
  connected : Boolean
[只读] 表示应用程序是否通过永久性的 RTMP 连接连接到服务器,如果是,则为 true,否则为 false。
NetConnection
  connectedProxyType : String
[只读] 用于成功连接到 Flash Media Server 的代理类型。
NetConnection
 Inheritedconstructor : Object
对类对象或给定对象实例的构造函数的引用。
Object
  defaultObjectEncoding : uint
[静态] 用于 NetConnection 对象的默认对象编码。
NetConnection
  farID : String
[只读] 与此 Flash Player 或 Adobe AIR 实例连接的 Flash Media Server 实例的标识符。
NetConnection
  farNonce : String
[只读] 由 Flash Media Server 实际选择的一个值,该值对此连接是唯一的。
NetConnection
      httpIdleTimeout : Number
等待 HTTP 响应的时间(以毫秒计算)。
NetConnection
  maxPeerConnections : uint
Flash Player 或 Adobe AIR 的此实例允许的传入和传出同级连接的总数。
NetConnection
  nearID : String
[只读] 用于此 NetConnection 实例的 Flash Player 或 Adobe AIR 实例的标识符。
NetConnection
  nearNonce : String
[只读] 由此 Flash Player 或 Adobe AIR 实例实际选择的一个值,该值对此连接是唯一的。
NetConnection
  objectEncoding : uint
此 NetConnection 实例的对象编码。
NetConnection
  protocol : String
[只读] 用于建立连接的协议。
NetConnection
  proxyType : String
确定到 Flash Media Server 的初始连接尝试失败后应使用的后备方法。
NetConnection
  unconnectedPeerStreams : Array
[只读] 一个对象,其中包含与发布方 NetStream 对象不相关的所有同级订户 NetStream 对象。
NetConnection
  uri : String
[只读] 传递给 NetConnection.connect() 方法的 URI。
NetConnection
  usingTLS : Boolean
[只读] 表示是否已使用本机传输层安全 (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 Media Server 上某个应用程序或到 Flash Remoting 的双向连接,或为 RTMFP 对等组通信创建双向网络端点。
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
返回指定对象的原始值。
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, Flash Lite 4

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



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

引发
TypeError — 必须将 client 属性设置为非空对象。

connected

属性 
connected:Boolean  [只读]

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

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



实现
    public function get connected():Boolean

connectedProxyType

属性 
connectedProxyType:String  [只读]

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

用于成功连接到 Flash Media Server 的代理类型。可能值是:“none”“HTTP”“HTTPS”“CONNECT”

如果未使用隧道建立连接或连接是 SSL 连接,则此值为“none”

如果使用隧道通过 HTTP 建立连接,则此值为“HTTP”

如果使用隧道通过 HTTPS 建立连接,则此值为“HTTPS”

如果使用隧道借助 CONNECT 方法通过代理服务器建立连接,则此值为“CONNECT”



实现
    public function get connectedProxyType():String

引发
ArgumentError — 已尝试在未连接 NetConnection 实例时访问此属性。

defaultObjectEncoding

属性 
defaultObjectEncoding:uint

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

用于 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 static function set defaultObjectEncoding(value:uint):void

相关 API 元素

farID

属性 
farID:String  [只读]

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

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



实现
    public function get farID():String

相关 API 元素

farNonce

属性 
farNonce:String  [只读]

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

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



实现
    public function get farNonce():String
    

httpIdleTimeout

属性 
httpIdleTimeout:Number

语言版本: ActionScript 3.0
运行时版本: AIR 2.6

等待 HTTP 响应的时间(以毫秒计算)。默认值为零。

  • httpIdleTimeout 值为 Number
  • 使用 HTTP 连接时,正值表示非活动连接应该保持启用的毫秒数。
  • 零值表示应该使用平台的默认网络空闲超时值。
  • 负值将导致 RangeError
  • 如果超出 httpIdleTimeout 值,则调度 netStatus 事件。
  • 此属性只影响通过 HTTP 连接创建的 NetConnection 对象。通过 RTMP、RTMFP 或其他 HTTP 通道创建的 NetConnection 对象不受此属性的影响。
    //Set the timeout to 5 seconds
    connection = new NetConnection();
    connection.addEventListener(NetStatusEvent.NET_STATUS, netStatusHandler);
    connection.addEventListener(SecurityErrorEvent.SECURITY_ERROR, securityErrorHandler);
    connection.httpIdleTimeout = 5000;
    
在基于 Linux 的系统中,NetConnection 会需要比使用 httpIdleTimeout 值指定的时间更长的秒数才能超时。



实现
    public function get httpIdleTimeout():Number
    public function set httpIdleTimeout(value:Number):void

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  [只读]

语言版本: 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

相关 API 元素

nearNonce

属性 
nearNonce:String  [只读]

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

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



实现
    public function get nearNonce():String

objectEncoding

属性 
objectEncoding:uint

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

此 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 之前发布的服务器进行通信,则了解此属性非常重要。可能存在以下三种情况:

  • 连接到支持 AMF3 的服务器(如 Flex Data Services 2 或 Flash Media Server 3)。defaultObjectEncoding 的默认值是 ObjectEncoding.AMF3。在此文件中创建的所有 NetConnection 实例均使用 AMF3 序列化,因此无需设置 objectEncoding 属性。
  • 连接到不支持 AMF3 的服务器(如 Flash Media Server 2)。在这种情况下,应将静态 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 属性包含一个信息对象,此信息对象具有 code 属性,值为 NetConnection.Connect.Failed,并包含说明对象编码不正确的描述。



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

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

相关 API 元素

protocol

属性 
protocol:String  [只读]

语言版本: 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():String

引发
ArgumentError — 已尝试在未连接 NetConnection 实例时访问此属性。

proxyType

属性 
proxyType:String

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

确定到 Flash Media Server 的初始连接尝试失败后应使用的后备方法。在调用 NetConnection.connect() 方法之前设置 proxyType 属性。

可接受值为“none”“HTTP”“CONNECTOnly”“CONNECT”“best”。默认值为“none”

要使用本机 SSL,请将此属性设置为“best”。如果播放器无法直接连接到服务器(通过默认端口 443 或您指定的其他端口)并且代理服务器可用,则播放器尝试使用 CONNECT 方法。如果尝试失败,播放器通过 HTTPS 用隧道播放。

如果该属性设为“CONNECTOnly”,播放器将尝试首先使用 CONNECT 方法。如果该方法失败,将没有回退功能。

如果将此属性设置为“HTTP”并且直接连接失败,则会使用 HTTP 隧道。如果将此属性设为“CONNECT”并且直接连接失败,则将使用隧道的 CONNECT 方法。如果后者也失败,连接不会使用备用的 HTTP 隧道方法。

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



实现
    public function get proxyType():String
    public function set proxyType(value:String):void

unconnectedPeerStreams

属性 
unconnectedPeerStreams:Array  [只读]

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

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



实现
    public function get unconnectedPeerStreams():Array

相关 API 元素

uri

属性 
uri:String  [只读]

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

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



实现
    public function get uri():String

usingTLS

属性 
usingTLS:Boolean  [只读]

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

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



实现
    public function get usingTLS():Boolean

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

NetConnection

()构造函数
public function NetConnection()

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

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

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

以下代码可创建一个 NetConnection 对象。

     var nc:NetConnection = new NetConnection();
     

相关 API 元素

方法详细信息

addHeader

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

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

将上下文标头添加到 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 Lite 4

在 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 — 尝试与位于调用方安全沙箱外部的服务器进行通信的调用。可通过在服务器上使用策略文件来避免出现此问题。

相关 API 元素

close

()方法 
public function close():void

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

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

此方法断开在此连接上运行的所有 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 配置和管理指南》)。

相关 API 元素

connect

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

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

创建到 Flash Media Server 上某个应用程序或到 Flash Remoting 的双向连接,或为 RTMFP 对等组通信创建双向网络端点。为了报告其状态或错误情况,对 NetConnection.connect() 的调用将调度 netStatus 事件。

调用 NetConnection.connect() 会执行下列操作:

  • 传递“null”会从本地文件系统或 Web 服务器播放视频和 MP3 文件。
  • 传递“http”URL 可连接到运行 Flash Remoting 的应用程序服务器。可使用 NetServices 类通过 NetConnection 对象调用应用程序服务器函数,并返回结果。有关详细信息,请参阅 Flash Remoting 文档
  • 传递“rtmp/e/s”URL 可连接到 Flash Media Server 应用程序。
  • 传递“rtmfp”URL 会为 RTMFP 客户端服务器、对等和 IP 多播通信创建双向网络端点。
  • 传递字符串“rtmfp:”可为 RTMFP IP 多播通信创建无服务器的双向网络端点。

请考虑以下安全模型:

  • 默认情况下,Flash Player 或 AIR 拒绝沙箱之间的访问。网站可通过使用 URL 策略文件来实现对资源的访问。
  • 应用程序可以拒绝对服务器上的资源的访问。在 Flash Media Server 应用程序中,使用服务器端 ActionScript 代码以拒绝访问。请参阅 Flash Media Server 文档
  • 如果进行调用的文件位于只能与本地文件系统内容交互的沙箱中,则无法调用 NetConnection.connect()
  • 无法连接到常用的保留端口。有关已阻止的端口的完整列表,请参阅《ActionScript 3.0 开发人员指南》中的“限制网络 API”。
  • 要防止 SWF 文件调用此方法,可在包含 SWF 内容的 HTML 页中设置 objectembed 标签的 allowNetworking 参数。

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

有关安全性的详细信息,请访问 Adobe Flash Player 开发人员中心:安全

参数

command:String — 对 command 参数使用下列值之一:
  • 要从本地文件系统或从 Web 服务器播放视频和 mp3 文件,可传递 null
  • 要连接到运行 Flash Remoting 的应用程序服务器,可传递使用 http 协议的 URL。
  • (Flash Player 10.1 或 AIR 2 或更高版本)要为 RTMFP IP 多播通信创建无服务器的网络端点,可传递字符串 "rtmfp:"。使用此连接类型可从发布者接收 IP 多播流,无需使用服务器。您也可以使用此连接类型通过 IP 多播来发现同一局域网 (LAN) 上的对等应用程序。
  • 此连接类型具有以下限制:

    仅同一 LAN 上的对等应用程序可以发现彼此。

    Flash Player 使用 IP 多播可以接收流,但不能发送流。

    Flash Player 和 AIR 可以在对等组中发送和接收流,但这些对等应用程序必须是使用 IP 多播在同一 LAN 上发现的。

    此技术不适用于一对一通信。

  • 要连接到 Flash Media Server,可传递服务器上应用程序的 URI。应使用以下语法(方括号中的项是可选的):

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

    使用下列协议之一:rtmprtmpertmpsrtmptrtmptertmfp。如果连接成功,则会返回 netStatus 事件,code 属性值为 NetConnection.Connect.Success。请参阅 NetStatusEvent.info 属性,获得有关为响应 connect() 调用而返回的所有事件代码的列表。

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

    (Flash Player 10.1 或 AIR 2 或更高版本)要创建对等应用程序,可使用 rtmfp 协议。

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


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

相关 API 元素

事件详细信息

asyncError

事件
事件对象类型: flash.events.AsyncErrorEvent
属性 AsyncErrorEvent.type = flash.events.AsyncErrorEvent.ASYNC_ERROR

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

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

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

此事件具有以下属性:

属性
bubblesfalse
cancelablefalse;没有要取消的默认行为。
currentTarget当前正在使用某个事件侦听器处理 Event 对象的对象。
target调度事件的对象。
error触发此事件的错误。

ioError

事件  
事件对象类型: flash.events.IOErrorEvent
属性 IOErrorEvent.type = flash.events.IOErrorEvent.IO_ERROR

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

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

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

此事件具有以下属性:

属性
bubblesfalse
cancelablefalse;没有要取消的默认行为。
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, Flash Lite 4

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

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

此事件具有以下属性:

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

相关 API 元素

securityError

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

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

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

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

此事件具有以下属性:

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

相关 API 元素

NetConnectionExample.as

以下示例将 Video 对象与 NetConnection 和 NetStream 类一同使用,以加载和播放 FLV 文件。

在本例中,创建 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 = "http://www.helpexamples.com/flash/video/cuepoints.flv";
        private var connection:NetConnection;
        private var stream:NetStream;
        private var video:Video = new Video();        

        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 {
            addChild(video);
            var stream:NetStream = new NetStream(connection);
            stream.addEventListener(NetStatusEvent.NET_STATUS, netStatusHandler);
            stream.client = new CustomClient();
            video.attachNetStream(stream);
            stream.play(videoURL);
        }
    }
}

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);
    }
}




[ X ]为什么显示为英语?
《ActionScript 3.0 参考》中的内容以英语显示

《ActionScript 3.0 参考》中的部分内容未翻译成所有语言。当某个语言元素未翻译时,将显示为英语。例如,ga.controls.HelpBox 类未翻译成任何语言。因此在简体中文版的参考中,ga.controls.HelpBox 类显示为英语。