包 | flash.net |
类 | public class NetConnection |
继承 | NetConnection EventDispatcher Object |
语言版本: | ActionScript 3.0 |
运行时版本: | AIR 1.0, Flash Player 9, Flash Lite 4 |
NetConnection.connect()
以建立连接。使用 NetStream 通过该连接发送媒体流和数据。
有关向 Flash Player 和 AIR 中加载内容和数据的安全性信息,请参阅以下内容:
- 要从 Web 服务器或本地位置向 Flash Player 中加载内容和数据,请参阅 Flash Player 开发人员中心:安全。
- 要从 Flash Media Server 向 Flash Player 和 AIR 中加载内容和数据,请参阅 Flash Media Server 文档。
- 要向 AIR 中加载内容和数据,请参阅 Adobe AIR 开发人员中心。
要为该类编写回调方法,可以扩展该类,然后在子类中定义回调方法,或将 client
属性分配给某个对象,然后对该对象定义回调方法。
相关 API 元素
属性 | 由以下参数定义 | ||
---|---|---|---|
client : Object
表示对其调用回调方法的对象。 | NetConnection | ||
connected : Boolean [只读]
表示应用程序是否通过永久性的 RTMP 连接连接到服务器,如果是,则为 true,否则为 false。 | NetConnection | ||
connectedProxyType : String [只读]
用于成功连接到 Flash Media Server 的代理类型。 | NetConnection | ||
constructor : 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 | ||
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 Media Server 上某个应用程序或到 Flash Remoting 的双向连接,或为 RTMFP 对等组通信创建双向网络端点。 | NetConnection | ||
将事件调度到事件流中。 | EventDispatcher | ||
检查 EventDispatcher 对象是否为特定事件类型注册了任何侦听器。 | EventDispatcher | ||
表示对象是否已经定义了指定的属性。 | Object | ||
表示 Object 类的实例是否在指定为参数的对象的原型链中。 | Object | ||
表示指定的属性是否存在、是否可枚举。 | Object | ||
从 EventDispatcher 对象中删除侦听器。 | EventDispatcher | ||
设置循环操作动态属性的可用性。 | Object | ||
返回此对象的字符串表示形式,其格式设置遵守区域设置特定的约定。 | Object | ||
返回指定对象的字符串表示形式。 | Object | ||
返回指定对象的原始值。 | Object | ||
检查是否用此 EventDispatcher 对象或其任何祖代为指定事件类型注册了事件侦听器。 | EventDispatcher |
事件 | 摘要 | 由以下参数定义 | ||
---|---|---|---|---|
[广播事件] Flash Player 或 AIR 应用程序获得操作系统焦点并变为活动状态时将调度此事件。 | EventDispatcher | |||
在异步引发异常(即来自本机异步代码)时调度。 | NetConnection | |||
[广播事件] Flash Player 或 AIR 应用程序失去操作系统焦点并变为非活动状态时将调度此事件。 | EventDispatcher | |||
在出现输入或输出错误并导致网络操作失败时调度。 | NetConnection | |||
在 NetConnection 对象报告其状态或错误条件时调度。 | NetConnection | |||
若对 NetConnection.call() 的调用尝试连接到调用方安全沙箱外部的服务器,则进行调度。 | NetConnection |
client | 属性 |
connected | 属性 |
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 | 属性 |
farNonce | 属性 |
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;
NetConnection
会需要比使用 httpIdleTimeout
值指定的时间更长的秒数才能超时。
实现
public function get httpIdleTimeout():Number
public function set httpIdleTimeout(value:Number):void
maxPeerConnections | 属性 |
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 | 属性 |
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.AMF0 或 ObjectEncoding.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 时,此属性才可用。CONNECT
和 CONNECTOnly
方法仅适用于通过代理服务器连接到网络的用户。
实现
public function get proxyType():String
public function set proxyType(value:String):void
unconnectedPeerStreams | 属性 |
uri | 属性 |
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, | |
responder:Responder — 可选对象,用于处理服务器的返回值。Responder 对象可以用两个定义的方法来处理返回的结果:result 和 status 。如果返回的结果为错误,则将调用 status ;否则,将调用 result 。Responder 对象可以处理与特定操作有关的错误,而 NetConnection 对象则响应与连接状态有关的错误。
| |
... arguments — 可选参数,可以为任一 ActionScript 类型,并包括对另一个 ActionScript 对象的引用。当在远程应用程序服务器上执行 command 参数中指定的方法时,这些参数将被传递给该方法。
|
事件
securityError: — 尝试与位于调用方安全沙箱外部的服务器进行通信的调用。可通过在服务器上使用策略文件来避免出现此问题。
|
相关 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 页中设置
object
和embed
标签的allowNetworking
参数。
但在 Adobe AIR 中,application
安全沙箱中的内容(使用 AIR 应用程序安装的内容)不受这些安全限制的约束。
有关安全性的详细信息,请访问 Adobe Flash Player 开发人员中心:安全。
参数
command:String — 对 command 参数使用下列值之一:
此连接类型具有以下限制: 仅同一 LAN 上的对等应用程序可以发现彼此。 Flash Player 使用 IP 多播可以接收流,但不能发送流。 Flash Player 和 AIR 可以在对等组中发送和接收流,但这些对等应用程序必须是使用 IP 多播在同一 LAN 上发现的。 此技术不适用于一对一通信。 | |
... 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
属性值。
此事件具有以下属性:
属性 | 值 |
---|---|
bubbles | false |
cancelable | false ;没有要取消的默认行为。 |
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
属性值。
此事件具有以下属性:
属性 | 值 |
---|---|
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, Flash Lite 4 |
在 NetConnection 对象报告其状态或错误条件时调度。netStatus
事件包含一个 info
属性,该属性是一个包含事件特定信息(例如,连接尝试成功还是失败)的信息对象。
netStatus
事件对象的 type
属性值。
此事件具有以下属性:
属性 | 值 |
---|---|
bubbles | false |
cancelable | false ;没有要取消的默认行为。 |
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
属性值。
此事件具有以下属性:
属性 | 值 |
---|---|
bubbles | false |
cancelable | false ;没有要取消的默认行为。 |
currentTarget | 当前正在使用某个事件侦听器处理 Event 对象的对象。 |
target | 报告安全错误的网络对象。 |
text | 要显示为错误消息的文本。 |
相关 API 元素
在本例中,创建 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); } }
Tue Jun 12 2018, 11:04 AM Z