var imgLoader disappears when you exit the function.
I've changed your showSlide function into one line of code:
public function showSlide(e:Event):void
contentImage.source = a[e.currentTarget.selectedIndex];
...and now it's working. I must say I was a little lazy and didn't examine the rest of your code as much as I should . But it seems that you've written to much of it and you've complicated it a little. I don't get it, why are you creating the second array (b:Array)? I'm assuming, that you wanted to keep every picture in the memory to shorten the time of they load, am I right? But from what I know it's not important, cause every modern web browser will do it for you, and will keep them in it's cache after the first load.
OK, I made it work with local files.
The instantiating of vars in the functions relies on the eventListener reference to keep it accessible. Might be considered bad form ??
The b array does not duplicate the image data, but it does seem to be extraneous(sp).