套件 | 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 的安全資訊,請參閱下列主題:
- 若要從網站伺服器或從本機位置將內容與資料載入 Flash Player,請參閱 Flash Player 開發人員中心:安全性。
- 若要從 Flash Media Server 將內容與資料載入 Flash Player 與 AIR,請參閱 Flash Media Server 文件。
- 若要將內容與資料載入 AIR,請參閱 Adobe AIR 開發人員中心。
若要編寫此類別的回呼方法,您可以擴充此類別並在子類別中定義回呼方法,也可以將 client
屬性指定給物件,並定義該物件的回呼方法。
相關 API 元素
屬性 | 定義自 | ||
---|---|---|---|
client : Object
指出要針對其叫用回呼方法的物件。 | NetConnection | ||
connected : Boolean [唯讀]
指出應用程式是 (true) 否 (false) 透過持續的 RTMP 連線連到伺服器。 | NetConnection | ||
connectedProxyType : String [唯讀]
用於和 Flash Media Server 成功建立連線的 Proxy 類型。 | 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 [唯讀]
指出是否使用原本的 Transport Layer Security (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 成功建立連線的 Proxy 類型。可能值為:"none"
、"HTTP"
、"HTTPS"
或 "CONNECT"
。
如果連線未穿透或是原生 SSL 連線,則值為 "none"
。
如果連線是透過 HTTP 來穿透,則值為 "HTTP"
。
如果連線是透過 HTTPS 來穿透,則值為 "HTTPS"
。
如果連線使用透過 Proxy 伺服器的 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;
httpIdleTimeout
指定的值,NetConnection
可能會經過更多秒數才會逾時。
實作
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
屬性。 - 連線至使用不同編碼版本的多部伺服器。 請使用每個連線的
objectEncoding
屬性 (而非使用defaultObjectEncoding
),針對每個連線設定物件編碼。 將它設定為ObjectEncoding.AMF0
可連線到使用 AMF0 編碼的伺服器 (例如 Flash Media Server 2),而將它設定為ObjectEncoding.AMF3
可連線到使用 AMF3 編碼的伺服器 (例如 Flex Data Services 2)。
在 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 連線嘗試失敗時,要嘗試哪些後援方法。 請先設定 proxyType
屬性,之後才能呼叫 NetConnection.connect()
方法。
可接受的值為 "none"
、"HTTP"
、"CONNECTOnly"
、"CONNECT"
和 "best"
。預設值為 "none"
。
若要使用原生 SSL,請將屬性設定為 "best"
。如果播放程式無法直接連線至伺服器 (透過預設連接埠 443 或是透過您指定的其他連接埠),而且 Proxy 伺服器已就位,播放程式會嘗試使用 CONNECT 方法。如果該嘗試失敗,播放程式會透過 HTTPS 來穿透。
如果屬性設定為 "CONNECTOnly"
,播放程式就會嘗試先使用 CONNECT
方法。如果該方法失敗,就沒有後援。
如果屬性設定為 "HTTP"
而且直接連線失敗,就會使用 HTTP 穿透技術。如果此屬性設定為 "CONNECT"
而且直接連線失敗,就會使用穿透技術的 CONNECT
方法。如果該方法失敗,連線將不會使用後援的 HTTP 穿透技術。
只有在使用 RTMP、RTMPS 或 RTMPT 時,才適用這個屬性。CONNECT
和 CONNECTOnly
方法只適用於透過 Proxy 伺服器連線至網路的使用者。
實作
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 |
指出是否使用原本的 Transport Layer Security (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 |
關閉於本機開啟或連到伺服器的連線,並傳送 code
屬性為 NetConnection.Connect.Closed
的 netStatus
事件。
這個方法會使連線上執行的所有 NetStream 物件離線。 尚未傳送的佇列資料將全部捨棄 (若只要結束本機或伺服器串流,但不要關閉連線,請使用 NetStream.close()
)。 如果關閉連線,之後想要建立新連線,您必須建立新的 NetConnection 物件,並重新呼叫 connect()
方法。
close()
方法也會使在這個連線上執行的所有遠端共享物件離線。 但是,您不需要重新建立共享物件以重新連線, 您只需要改用呼叫 SharedObject.connect()
的方式重新建立共享物件的連線即可。 同時,當您重新建立與共享物件的連線後,就會送出之前在您發出 NetConnection.close()
時已在共享物件中排入佇列的所有資料。
使用 Flash Media Server 時,最好的程式開發作法是在用戶端不再需要與伺服器連線時呼叫 close()
。 呼叫 close()
是清除未儲存連線的最快方法。 您可以將伺服器設定為會自動關閉閒置連線,以做為備用的方法。 如需詳細資訊,請參閱「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",以便從本機檔案系統或網站伺服器中播放視訊和 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 Playe 開發人員中心」:安全性。
參數
command:String — 使用以下其中一個 command 參數值:
此連線類型具有下列限制: 只有在相同區域網路上的對等才可以探索彼此。 透過 IP 多點傳送,Flash Player 即可接收串流,但無法傳送串流。 Flash Player 與 AIR 可以在對等式群組中傳送和接收串流,但是必須在相同區域網路上使用 IP 多點傳送來探索對等。 這個技術不能用於一對一通訊。 | |
... arguments — 傳遞給應用程式 (會在 command 中指定) 的任何選擇性參數類型。使用 Flash Media Server 時,會傳遞額外的引數給應用程式伺服器端程式碼中的 application.onConnect() 事件處理常式。 您必須在 onConnect() 中定義和處理引數。
|
擲回值
ArgumentError — 傳遞給 command 參數的 URI 格式不正確。
| |
IOError — 連線失敗。 如果您從 netStatus 事件處理常式內呼叫 connect() ,就可能會發生這項錯誤,因為這是不允許的。
| |
SecurityError — 具有檔案系統的本機 SWF 檔無法與網際網路進行通訊。您可以透過將此 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
屬性,而此屬性是含有事件相關特定資訊 (例如,嘗試連線成功或失敗) 的資訊物件。
type
屬性值 (netStatus
事件物件)。
這個事件具有下列屬性:
屬性 | 值 |
---|---|
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, 03:47 PM Z