Зачем отправлять Event.OPEN вместо IOErrorEvent.IO_ERROR? - PullRequest
0 голосов
/ 16 января 2012

Почему метод load класса URLStream отправляет Event.OPEN вместо IOErrorEvent.IO_ERROR, когда SWF-файл находится на веб-сервере и при попытке загрузить недопустимый URL-адрес?

То же самое нене применяется при локальном запуске 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 голосов
/ 24 января 2012

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

0 голосов
/ 16 января 2012

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

Возможно, вы хотите HTTPStatusEvent.HTTP_STATUS

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...