为什么调度Event.OPEN而不是IOErrorEvent.IO_ERROR?

时间:2012-01-16 15:45:36

标签: actionscript-3 error-handling webserver dispatcher

为什么当SWF在网络服务器上时以及在尝试加载无效网址时,load类的URLStream方法会调度Event.OPEN而不是IOErrorEvent.IO_ERROR?< / p>

在本地运行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

2 个答案:

答案 0 :(得分:0)

Event.OPEN在加载时被触发。所以永远都会被召唤。

你可能想要HTTPStatusEvent.HTTP_STATUS

答案 1 :(得分:0)

当SWF在服务器上运行并且请求不存在的资源时,服务器实际发送一条错误消息,该消息计为数据,因此没有错误事件。同样不适用于本地,因为在发出不存在文件的请求时,没有Web服务器响应错误。通过使用Monster Debugger实时跟踪发现了这一点。