2012-01-16 122 views
0

當SWF位於網絡服務器上並嘗試加載無效的URL時,爲什麼類的load類調​​度Event.OPEN而不是IOErrorEvent.IO_ERROR類?爲什麼調度Event.OPEN而不是IOErrorEvent.IO_ERROR?

在本地運行SWF時同樣不適用。

示例代碼:

var CLS_UrlStream:URLStream = new URLStream(); // Initialize URLStream class instance. 
CLS_UrlStream.addEventListener(Event.OPEN, FUN_StreamHandler); // Listen for successful connections. 
CLS_UrlStream.addEventListener(IOErrorEvent.IO_ERROR, FUN_StreamHandler); // Listen for conenction errors. 
CLS_UrlStream.load(new URLRequest("InvalidURL")); // Load file. 

private function FUN_StreamHandler(FUN_PAR_Event:Event):void { 
trace("EVENT TYPE: " + FUN_PAR_Event.type); 
} 
// Outputs: EVENT TYPE: open 

回答

0

當SWF文件在服務器上運行,並請求不存在的資源,服務器實際上將其算作數據的錯誤信息,因此不存在錯誤事件。這同樣不適用於本地,因爲沒有Web服務器在發出不存在文件的請求時響應錯誤。通過跟蹤怪物調試器來發現這一點。

0

Event.OPEN被觸發的負載。所以總會被調用。

你可能想HTTPStatusEvent.HTTP_STATUS

+0

我保留HTTP_STATUS作爲替代方法,但是關於Event.OPEN - 當從Web服務器訪問執行的SWF時,它始終被觸發,但在本地執行時不會觸發。我想明白爲什麼。即使以相同的方式收聽,爲什麼事件的發送方式也不同? – IneedHelp 2012-01-16 16:46:54

+0

好吧,我明白了:當SWF在服務器上運行並且正在請求一個不存在的資源時,服務器實際上會發送一條錯誤消息作爲數據計數,因此沒有錯誤事件。這同樣不適用於本地,因爲沒有Web服務器在發出不存在文件的請求時響應錯誤。通過跟蹤怪物調試器來發現這一點。 – IneedHelp 2012-01-16 17:28:13

+0

基本上,它是流媒體和正常加載之間的區別。 – 2012-01-16 20:33:17

相關問題