包 | flash.events |
类 | public class NetStatusEvent |
继承 | NetStatusEvent Event Object |
语言版本: | ActionScript 3.0 |
运行时版本: | AIR 1.0, Flash Player 9, Flash Lite 4 |
NetStatusEvent.NET_STATUS
。
相关 API 元素
属性 | 由以下参数定义 | ||
---|---|---|---|
bubbles : Boolean [只读]
表示事件是否为冒泡事件。 | Event | ||
cancelable : Boolean [只读]
表示是否可以阻止与事件相关联的行为。 | Event | ||
constructor : Object
对类对象或给定对象实例的构造函数的引用。 | Object | ||
currentTarget : Object [只读]
当前正在使用某个事件侦听器处理 Event 对象的对象。 | Event | ||
eventPhase : uint [只读]
事件流中的当前阶段。 | Event | ||
info : Object
一个对象,具有描述对象的状态或错误条件的属性。 | NetStatusEvent | ||
target : Object [只读]
事件目标。 | Event | ||
type : String [只读]
事件的类型。 | Event |
方法 | 由以下参数定义 | ||
---|---|---|---|
NetStatusEvent(type:String, bubbles:Boolean = false, cancelable:Boolean = false, info:Object = null)
创建一个 Event 对象,其中包含有关 netStatus 事件的信息。 | NetStatusEvent | ||
[覆盖]
创建 NetStatusEvent 对象的副本,并设置每个属性的值以匹配原始属性值。 | NetStatusEvent | ||
用于在自定义 ActionScript 3.0 Event 类中实现 toString() 方法的实用程序函数。 | Event | ||
表示对象是否已经定义了指定的属性。 | Object | ||
检查是否已对事件调用 preventDefault() 方法。 | Event | ||
表示 Object 类的实例是否在指定为参数的对象的原型链中。 | Object | ||
如果可以取消事件的默认行为,则取消该行为。 | Event | ||
表示指定的属性是否存在、是否可枚举。 | Object | ||
设置循环操作动态属性的可用性。 | Object | ||
防止对事件流中当前节点中和所有后续节点中的事件侦听器进行处理。 | Event | ||
防止对事件流中当前节点的后续节点中的所有事件侦听器进行处理。 | Event | ||
返回此对象的字符串表示形式,其格式设置遵守区域设置特定的约定。 | Object | ||
[覆盖]
返回一个字符串,其中包含 NetStatusEvent 对象的所有属性。 | NetStatusEvent | ||
返回指定对象的原始值。 | Object |
常量 | 由以下参数定义 | ||
---|---|---|---|
NET_STATUS : String = "netStatus" [静态]
定义 netStatus 事件对象的 type 属性值。 | NetStatusEvent |
info | 属性 |
info:Object
语言版本: | ActionScript 3.0 |
运行时版本: | AIR 1.0, Flash Player 9, Flash Lite 4 |
一个对象,具有描述对象的状态或错误条件的属性。
该信息对象可能具有 code
属性(它包含表示特定事件的字符串),或者具有 level
属性(它包含 "status"
或 "error"
字符串)。
该信息对象还可能具有其他属性。由于一些实现和服务器可能发送不同的对象,code
和 level
属性可能不起作用。
P2P 连接使用表示消息所属 NetStream
的信息对象中的 stream
参数,将消息发送给 NetConnection
。
例如,如果试图访问 code
或 level
属性,Flex Data Services 将发送引起强制错误的 Message 对象。
下表说明了 code
和 level
属性可能的字符串值。
代码属性 | 级别属性 | 意义 |
---|---|---|
"NetConnection.Call.BadVersion" | "error" | 以不能识别的格式编码的数据包。 |
"NetConnection.Call.Failed" | "error" | NetConnection.call() 方法无法调用服务器端的方法或命令。 |
"NetConnection.Call.Prohibited" | "error" | Action Message Format (AMF) 操作因安全原因而被阻止。AMF URL 与文件(其中包含调用 NetConnection.call() 方法的代码)不在同一个域中,或者 AMF 服务器没有信任文件(其中包含调用 NetConnection.call() 方法的代码)所在域的策略文件。 |
"NetConnection.Connect.AppShutdown" | "error" | 正在关闭服务器端应用程序。 |
"NetConnection.Connect.Closed" | "status" | 成功关闭连接。 |
"NetConnection.Connect.Failed" | "error" | 连接尝试失败。 |
"NetConnection.Connect.IdleTimeout" | "status" | Flash Media Server 断开了与客户端的连接,因为客户端的闲置时间已超过了 <MaxIdleTime> 的配置值。 在 Flash Media Server 上,<AutoCloseIdleClients> 默认情况下处于禁用状态。 启用时,默认超时值为 3600 秒(1 小时)。有关详细信息,请参阅 关闭闲置连接。 |
"NetConnection.Connect.InvalidApp" | "error" | 对 NetConnection.connect() 的调用中指定的应用程序名称无效。 |
"NetConnection.Connect.NetworkChange" | "status" | Flash Player 检测到网络更改,例如,断开的无线连接、成功的无线连接或者网络电缆缺失。 使用此事件检查网络接口更改。不要使用此事件实现 NetConnection 重新连接逻辑。使用 |
"NetConnection.Connect.Rejected" | "error" | 连接尝试没有访问应用程序的权限。 |
"NetConnection.Connect.Success" | "status" | 连接尝试成功。 |
"NetGroup.Connect.Failed" | "error" | NetGroup 连接尝试失败。info.group 属性表示哪些 NetGroup 已失败。 |
"NetGroup.Connect.Rejected" | "error" | NetGroup 没有使用函数的权限。info.group 属性表示哪些 NetGroup 被拒绝。 |
"NetGroup.Connect.Success" | "status" | NetGroup 已构建成功并有权使用函数。info.group 属性表示哪些 NetGroup 已成功。 |
"NetGroup.LocalCoverage.Notify" | "status" | 当此节点负责的组地址空间的一部分发生更改时发送。 |
"NetGroup.MulticastStream.PublishNotify" | "status" | 当在 NetGroup 的组中检测到新命名的流时发送。info.name:String 属性是检测到的流的名称。 |
"NetGroup.MulticastStream.UnpublishNotify" | "status" | 当命名的流在此组中不再可用时发送。info.name:String 属性是已消失的流的名称。 |
"NetGroup.Neighbor.Connect" | "status" | 当邻域连接到此节点时发送。info.neighbor:String 属性是邻域的组地址。info.peerID:String 属性是邻域的对等 ID。 |
"NetGroup.Neighbor.Disconnect" | "status" | 当邻域与此节点断开连接时发送。info.neighbor:String 属性是邻域的组地址。info.peerID:String 属性是邻域的对等 ID。 |
"NetGroup.Posting.Notify" | "status" | 当收到新的 Group Posting 时发送。info.message:Object 属性是消息。info.messageID:String 属性是消息的 messageID。 |
"NetGroup.Replication.Fetch.Failed" | "status" | 当提取对象请求(之前已使用 NetGroup.Replication.Fetch.SendNotify 进行通知)失败或被拒绝时发送。如果仍需要此对象,则将重新尝试提取对象。info.index:Number 属性是已请求的对象的索引。 |
"NetGroup.Replication.Fetch.Result" | "status" | 当邻域满足了提取请求时发送。info.index:Number 属性是此结果的对象索引。info.object:Object 属性是此对象的值。此索引将自动从 Want 集中删除。如果此对象无效,可使用 NetGroup.addWantObjects() 将此索引重新添加到 Want 集。 |
"NetGroup.Replication.Fetch.SendNotify" | "status" | 当 Object Replication 系统即将向邻域发送对象请求时发送。info.index:Number 属性是请求的对象的索引。 |
"NetGroup.Replication.Request" | "status" | 当邻域已请求此节点已使用 NetGroup.addHaveObjects() 进行通知的对象时发送。最终必须使用 NetGroup.writeRequestedObject() 或 NetGroup.denyRequestedObject() 应答此请求。请注意答复可能会不同。info.index:Number 属性是已请求的对象的索引。info.requestID:int 属性是此请求的 ID,由 NetGroup.writeRequestedObject() 或 NetGroup.denyRequestedObject() 使用。 |
"NetGroup.SendTo.Notify" | "status" | 收到定向到此节点的消息时发送。info.message:Object 属性是消息。info.from:String 属性是发送此消息的 groupAddress。如果由此节点消息发送,则 info.fromLocal:Boolean 属性为 TRUE (这意味着本地节点是距离目标组地址最近的节点);如果由其他节点发送消息,则为 FALSE 。在 info.fromLocal 为 FALSE 的情况下,若要实现循环路由,则必须使用 NetGroup.sendToNearest() 重新发送消息。 |
"NetStream.Buffer.Empty" | "status" | Flash Player 接收数据的速度不足以填充缓冲区。数据流在缓冲区重新填充(此时发送 NetStream.Buffer.Full 消息,流开始再次播放流)前处于中断状态。 |
"NetStream.Buffer.Flush" | "status" | 数据已完成流式加载,并且剩余缓冲区被清空。注意:在 AIR 3.0 for iOS 中不支持。 |
"NetStream.Buffer.Full" | "status" | 缓冲区已满,流开始播放。 |
"NetStream.Connect.Closed" | "status" | 成功关闭 P2P 连接。info.stream 属性表示已关闭的流。注意:在 AIR 3.0 for iOS 中不支持。 |
"NetStream.Connect.Failed" | "error" | P2P 连接尝试失败。info.stream 属性表示已失败的流。注意:在 AIR 3.0 for iOS 中不支持。 |
"NetStream.Connect.Rejected" | "error" | P2P 连接尝试没有访问另一个对等方的权限。info.stream 属性表示被拒绝的流。注意:在 AIR 3.0 for iOS 中不支持。 |
"NetStream.Connect.Success" | "status" | P2P 连接尝试成功。info.stream 属性表示已成功的流。注意:在 AIR 3.0 for iOS 中不支持。 |
"NetStream.DRM.UpdateNeeded" | "status" | NetStream 对象尝试播放受保护的内容,但是所需的 Flash Access 模块不存在、有效内容策略不允许,或者与当前播放器不兼容。要更新模块或播放器,请使用 flash.system.SystemUpdater 的 update() 方法。注意:在 AIR 3.0 for iOS 中不支持。 |
"NetStream.Failed" | "error" | (Flash Media Server) 发生了错误,其他事件代码中没有列出此错误的原因。 |
"NetStream.MulticastStream.Reset" | "status" | 多播订阅已将焦点更改为同一组中使用同一名称发布的其他流。多播流参数的局部替换缺失。请重新应用局部替换,否则会使用新流的默认参数。 |
"NetStream.Pause.Notify" | "status" | 流已暂停。 |
"NetStream.Play.Failed" | "error" | 出于此表中列出的原因之外的某一原因(例如订阅者没有读取权限),播放发生了错误。注意:在 AIR 3.0 for iOS 中不支持。 |
“NetStream.Play.FileStructureInvalid” | "error" | (AIR 和 Flash Player 9.0.115.0)应用程序检测到无效的文件结构,并且不会尝试播放此类型的文件。注意:在 AIR 3.0 for iOS 中不支持。 |
"NetStream.Play.InsufficientBW" | "warning" | (Flash Media Server) 客户端没有足够的带宽,无法以正常速度播放数据。注意:在 AIR 3.0 for iOS 中不支持。 |
“NetStream.Play.NoSupportedTrackFound” | "status" | (AIR 和 Flash Player 9.0.115.0) 应用程序未检测到任何受支持的轨道(视频、音频或数据),并且不会尝试播放此文件。注意:在 AIR 3.0 for iOS 中不支持。 |
"NetStream.Play.PublishNotify" | "status" | 到流的初始发布被发送到所有的订阅者。 |
"NetStream.Play.Reset" | "status" | 由播放列表重置导致。注意:在 AIR 3.0 for iOS 中不支持。 |
"NetStream.Play.Start" | "status" | 播放已开始。 |
"NetStream.Play.Stop" | "status" | 播放已结束。 |
"NetStream.Play.StreamNotFound" | "error" | 无法找到传递到 NetStream.play() 方法的文件。 |
"NetStream.Play.Transition" | "status" | (Flash Media Server 3.5) 服务器收到因位速率流切换而需要过渡到其他流的命令。此代码表示用于启动流切换的 NetStream.play2() 调用的成功状态事件。如果切换失败,则服务器将改为发送 NetStream.Play.Failed 事件。当发生流切换时,将调度带有代码“NetStream.Play.TransitionComplete”的 onPlayStatus 事件。用于 Flash Player 10 及更高版本。注意:在 AIR 3.0 for iOS 中不支持。 |
"NetStream.Play.UnpublishNotify" | "status" | 从流取消的发布被发送到所有的订阅者。 |
"NetStream.Publish.BadName" | "error" | 试图发布已经被他人发布的流。 |
"NetStream.Publish.Idle" | "status" | 流发布者空闲而没有在传输数据。 |
"NetStream.Publish.Start" | "status" | 已经成功发布。 |
"NetStream.Record.AlreadyExists" | "status" | 正在记录的流映射到已经记录其他流的文件。由于错误配置了虚拟目录,会发生这种情况。 |
"NetStream.Record.Failed" | "error" | 尝试录制流失败。 |
"NetStream.Record.NoAccess" | "error" | 试图录制仍处于播放状态的流或客户端没有访问权限的流。 |
"NetStream.Record.Start" | "status" | 录制已开始。 |
"NetStream.Record.Stop" | "status" | 录制已停止。 |
"NetStream.SecondScreen.Start" | "status" | 当 PlayTo 会话开始时发送。附加到此事件的描述字段将包含要获取视频的设备的名称。仅适用于 Windows 8.1 IE11(modern 模式)。 |
"NetStream.SecondScreen.Stop" | "status" | 当 PlayTo 会话结束时发送。仅适用于 Windows 8.1 IE11(modern 模式)。 |
"NetStream.Seek.Failed" | "error" | 搜索失败,如果流处于不可搜索状态,则会发生搜索失败。 |
"NetStream.Seek.InvalidTime" | "error" | 对于按渐进方式下载的视频,用户已尝试跳过到目前为止已下载的视频数据的结尾或跳过视频的结尾(当整个文件已下载后)进行搜寻或播放。事件对象的 info.details 属性包含一个时间代码,该代码表示用户可以搜索的最后一个有效位置。 |
"NetStream.Seek.Notify" | "status" | 搜寻操作完成。 当对 AS3 NetStream 数据生成模式中的流调用 |
"NetStream.Step.Notify" | "status" | 步骤操作完成。注意:在 AIR 3.0 for iOS 中不支持。 |
"NetStream.Unpause.Notify" | "status" | 流已恢复。 |
"NetStream.Unpublish.Success" | "status" | 已成功执行取消发布操作。 |
"SharedObject.BadPersistence" | "error" | 使用永久性标志对共享对象进行了请求,但请求无法被批准,因为已经使用其他标记创建了该对象。 |
"SharedObject.Flush.Failed" | "error" | “待定”状态已解析,但 SharedObject.flush() 失败。 |
"SharedObject.Flush.Success" | "status" | “待定”状态已解析并且 SharedObject.flush() 调用成功。 |
"SharedObject.UriMismatch" | "error" | 试图连接到拥有与共享对象不同的 URI (URL) 的 NetConnection 对象。 |
"NetStream.Video.DimensionChange" | "status" | 视频尺寸已提供或已更改。使用 Video 或 StageVideo videoWidth/videoHeight 属性查询新的视频尺寸。Flash Player 11.4/AIR 3.4 中的新增内容。 |
如果您不断地看到有关缓冲区的错误,则请尝试使用 NetStream.bufferTime
属性更改缓冲区。
实现
public function get info():Object
public function set info(value:Object):void
相关 API 元素
示例 ( 如何使用本示例 )
"NetStream.Seek.InvalidTime"
错误的事件处理函数。当用户尝试在下载流的结尾之外搜寻时,会发生 "NetStream.Seek.InvalidTime"
错误。本示例用于测试该事件对象的 info.code
属性值。如果发生错误,eventObj.info.details
属性将分配给变量以用作流的 seek()
方法的参数。eventObj.info.details
包含了可用于处理错误的最后一个有效位置。因此,用户会进入下载流结尾处的有效位置。
function videoStatus(eventObj:NetStatusEvent):Void { switch(eventObj.info.code) { case "NetStream.Seek.InvalidTime": { var validSeekTime:Number = eventObj.info.details; nStream.seek(validSeekTime); break; } } }
NetStatusEvent | () | 构造函数 |
public function NetStatusEvent(type:String, bubbles:Boolean = false, cancelable:Boolean = false, info:Object = null)
语言版本: | ActionScript 3.0 |
运行时版本: | AIR 1.0, Flash Player 9, Flash Lite 4 |
创建一个 Event 对象,其中包含有关 netStatus
事件的信息。将 Event 对象作为参数传递给事件侦听器。
type:String — 事件的类型。事件侦听器可以通过继承的 type 属性访问此信息。只有一种类型的状态事件:NetStatusEvent.NET_STATUS 。
| |
bubbles:Boolean (default = false ) — 确定 Event 对象是否参与事件流的冒泡阶段。事件侦听器可以通过继承的 bubbles 属性访问此信息。
| |
cancelable:Boolean (default = false ) — 确定是否可以取消 Event 对象。事件侦听器可以通过继承的 cancelable 属性访问此信息。
| |
info:Object (default = null ) — 一个对象,包含描述其状态的属性。事件侦听器可以通过 info 属性访问此对象。
|
相关 API 元素
clone | () | 方法 |
toString | () | 方法 |
NET_STATUS | 常量 |
public static const NET_STATUS:String = "netStatus"
语言版本: | ActionScript 3.0 |
运行时版本: | AIR 1.0, Flash Player 9, Flash Lite 4 |
定义 netStatus
事件对象的 type
属性值。
此事件具有以下属性:
属性 | 值 |
---|---|
bubbles | false |
cancelable | false ;没有要取消的默认行为。 |
currentTarget | 当前正在使用某个事件侦听器处理 Event 对象的对象。 |
info | 一个对象,具有描述对象的状态或错误条件的属性。 |
target | 报告其状态的 NetConnection 或 NetStream 对象。 |
相关 API 元素
在此示例中,netStatusHandler
方法作为 NetStatusEvent 事件 NetConnection.netStatus
的侦听器进行注册。当确定了 NetConnection.connect()
尝试的状态(成功或失败)时,netStatus
事件触发此方法。如果连接 NetConnection 对象的尝试取得成功(也就是说,如果 NetStatusEvent 对象的 info
属性由 netStatus
事件调度,并有一个表示成功的 code
属性),则代码创建 Video 和 NetStream 对象并调用 Video.attachNetStream()
和 NetStream.play()
方法。
注意:为了运行此示例,需要一个名称和位置与传递给 videoURL
的变量相匹配的 FLV 文件;在本例中,使用 SWF 文件所在目录下的一个名为 Video.flv 的 FLV 文件。
package { import flash.display.Sprite; import flash.events.*; import flash.media.Video; import flash.net.NetConnection; import flash.net.NetStream; public class NetStatusEventExample extends Sprite { private var videoURL:String = "Video.flv"; private var connection:NetConnection; private var stream:NetStream; public function NetStatusEventExample() { 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("Unable to locate video: " + videoURL); break; } } private function connectStream():void { var stream:NetStream = new NetStream(connection); stream.addEventListener(NetStatusEvent.NET_STATUS, netStatusHandler); stream.addEventListener(AsyncErrorEvent.ASYNC_ERROR, asyncErrorHandler); var video:Video = new Video(); video.attachNetStream(stream); stream.play(videoURL); addChild(video); } private function securityErrorHandler(event:SecurityErrorEvent):void { trace("securityErrorHandler: " + event); } private function asyncErrorHandler(event:AsyncErrorEvent):void { // ignore AsyncErrorEvent events. } } }
Tue Jun 12 2018, 11:04 AM Z