套件 | 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)
建立包含 netStatus 事件相關資訊的 Event 物件。 | 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 連線會使用資訊物件中的 stream
參數來傳送訊息至 NetConnection
,表示與此訊息相關的 NetStream
。
例如,您嘗試存取 code
或 level
屬性,則 Flex Data Services 會傳送導致強制轉型錯誤的 Message 物件。
下表說明 code
和 level
屬性的可能字串值。
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 小時)。如需詳細資訊,請參閱 Close idle connections。 |
"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" | 當已命名的串流已無法在 Group 中使用時就傳送。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" | 當收到導向至這個節點的群組發佈時就傳送。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" | 當物件複製系統正要向鄰點傳送物件的要求時,就傳送。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 最新模式。 |
"NetStream.SecondScreen.Stop" | "status" | 當 PlayTo 工作階段結束時就傳送。僅適用於 Windows 8.1、IE11 最新模式。 |
"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" | "pending" 狀態已解析,但 SharedObject.flush() 呼叫卻失敗。 |
"SharedObject.Flush.Success" | "status" | "pending" 狀態已解析,且 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 |
建立包含 netStatus
事件相關資訊的 Event 物件。 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 |
定義 type
屬性值 (netStatus
事件物件)。
這個事件具有下列屬性:
屬性 | 值 |
---|---|
bubbles | false |
cancelable | false ;沒有要取消的預設行為指令。 |
currentTarget | 正主動使用事件偵聽程式處理 Event 物件的物件。 |
info | 物件,其中包含描述該物件狀態或錯誤情況的屬性。 |
target | 回報其狀態的 NetConnection 或 NetStream 物件。 |
相關 API 元素
在此範例中,netStatusHandler
方法將註冊為 NetStatusEvent 事件 NetConnection.netStatus
的偵聽程式。 在已確定 NetConnection.connect()
嘗試的狀態 (成功或失敗) 時,netStatus
事件會觸發這個方法。 如果嘗試與 NetConnection 物件的連線成功 (換句話說,如果 NetStatusEvent 物件的 info
屬性是由具有指出 success 之 code
屬性的 netStatus
事件所傳送),則程式碼會建立 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, 03:47 PM Z