Logo Questions Linux Laravel Mysql Ubuntu Git Menu
 

Catching an unhandled IOErrorEvent in Flash AS3

Error #2044: Unhandled IOErrorEvent:. text=Error #2036: Load Never Completed.

That's what I see every time I try to load an image that doesn't exist using a Loader. I'm getting a list of URLs and can't validate if they're pointing to anything useful. Whenever it encounters a 404 it gives me that error.

I have tried to catch the error with every available IOErrorEvent there is (there are 7 of them),but none of them seem to capture the 404. Is there some other network event that I can be looking for to catch this condition?! I feel like I'm missing something obvious.

What I'd really like is to be able to catch the event regardless of its description and just deal with it... sort of like

myLoader.addEventListener(IOErrorEvent.*, dealWithError);

But that's illegal. I even tried catching

HTTPStatusEvent.HTTP_STATUS

but that never calls back because, I guess, it gets the HTTP status after it deals with the error events, so, as it fails on the "unhandled" error event, it just gets lost. Are there events that aren't in the IDE that I'm overlooking?

All help appreciated.

like image 841
Yevgeny Simkin Avatar asked Apr 14 '11 22:04

Yevgeny Simkin


2 Answers

if you are using a loader; try adding the eventListener to the contentLoaderInfo of the loader, e.g.

myLoader.contentLoaderInfo.addEventListener(IOErrorEvent.IO_ERROR, loaderIOErrorHandler);
like image 162
Michiel Standaert Avatar answered Sep 17 '22 15:09

Michiel Standaert


You must listen for the IOErrorEvent.IO_ERROR of your URLLoader object.

urlLoader.addEventListener(IOErrorEvent.IO_ERROR, loaderIOErrorHandler);
function loaderIOErrorHandler(errorEvent:IOErrorEvent):void{
    trace("ioErrorHandler: " + errorEvent);
}

If you trace the event object, then it should give you some information about what is going on.

like image 45
Adam Harte Avatar answered Sep 20 '22 15:09

Adam Harte