2012-01-16 2 views
0

Почему метод load для отправки URLStream класса Event.OPEN вместо IOErrorEvent.IO_ERROR, когда SWF находится на веб-сервере и при попытке загрузить недопустимый URL-адрес?Почему диспетчеризация 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 работает на сервере и запрашивает для ресурса, который не существует, сервер фактически отправляет сообщение об ошибке, которое подсчитывает как данные, таким образом, не существует событие ошибки. То же самое не применялось локально, потому что не было веб-сервера для ответа с ошибкой при получении запроса на несуществующий файл. Обнаружено это, отслеживая живое с помощью Monster Debugger.

0

Event.OPEN сработал на нагрузке. Так всегда будет называться.

Вы, вероятно, хотите HTTPStatusEvent.HTTP_STATUS

+0

Я сохраняю HTTP_STATUS в качестве альтернативы, но в отношении Event.OPEN - он всегда запускается, когда исполняемый SWF обращается с веб-сервера, но не при выполнении локально. Я хотел бы понять, почему это так. Почему событие отправляется по-другому, даже если его прослушивают таким же образом? – IneedHelp

+0

Хорошо, я понял: когда SWF работает на сервере и запрашивает ресурс, которого не существует, сервер фактически отправляет сообщение об ошибке, которое считается как данные, поэтому нет события ошибки. То же самое не применялось локально, потому что не было веб-сервера для ответа с ошибкой при получении запроса на несуществующий файл. Обнаружено это, отслеживая живое с помощью Monster Debugger. – IneedHelp

+0

В принципе, это разница между потоковой и нормальной загрузкой. –

Смежные вопросы