Do I need to remove these event listeners?
Quick answer:

Maybe yes, maybe no. Yes, they'll be garbage collected now, but cleaning up after yourself is not a bad habit to get into. It doesn't hurt to do so.

What you do need to be careful of, however, is that you clean it up right.

Compare:

loader.addEventListener(Event.COMPLETE, onComplete);
loader.addEventListener(IOErrorEvent.IO_ERROR, onError);


With:

loader.removeEventListener(Event.COMPLETE, onComplete);
loader.removeEventListener(IOErrorEvent.IO_ERROR, onComplete);


and you'll soon notice the mistake: IOErrorEvent.IO_ERROR is mapped to onError, but the removeEventListener assumes it's mapped to onComplete!



Additionally, you have a unnecessary variable here:

var res:Object; 


It's not used by anything, so I'd remove it.