I am creating an image viewer, but its more complicated than just a simple slideshow. It has different animated transitions and different text overlays. What I am trying to do is create an image preloader to load all images when the flash first loads. I am loading all images externally using an xml file for path names and other data. I think I have done this, but I'm not 100% sure its working right. I have a movie clip which contains a series of movie clips within it, one for each image. I load an image onto each of those movie clips. (eg. holder_mc.mc1, holder_mc.mc2, holder_mc.mc3, etc) Then once everything is loaded I begin the animation which moves through the images using transitions and various text. During this animation I am alternating between two other movie clips and am loading the image paths using:
mc1_mc.loadMovie(imagepath);
The question I have is, since I loaded these images into a movie clip earlier, is it using a cache of this image now or am I still just loading the image from the server every time I do that? I have tried uploading it but its hard to tell with my high speed internet if its using the cache or downloading each time. I have also tried simulating the download, but it seems to do something a little different each time.
Is there another way to use the images that I have stored in the holder_mc?
The other problem I'm having is with my MovieClipLoader. For some reason it won't call code in the onLoadProgress, but it will call code from the onLoadInit. Any obvious things I should check?

Code:
frame1
stop();
createEmptyMovieClip("holder_mc",1);
var loader:MovieClipLoader = new MovieClipLoader();
loader.addListener(this);


//called after the first images is finished loading. If there are more images to load, it loads the rest of the images into a movie clip
function onLoadInit(_mc:MovieClip) {
count++;
//just a check to make sure I have loaded all of the images (s = number of images)
if (count == s){
trace("Loading Complete");
holder_mc._visible = false;
gotoandplay(2);
}else{
trace("Loading " + imageArray[count].path + "...");
loader.loadClip(imageArray[count].path, holder_mc["mc"+count]);
}
};

//for some reason this NEVER gets called
function onLoadProgress(_mc:MovieClip, loaded:Number, total:Number) {
trace("Loading...");
trace(Math.floor(loaded / total * 100) + "%");
};

// load xml
images_xml = new XML();
images_xml.ignoreWhite=true;
images_xml.onLoad = parse;
images_xml.load("images.xml");

function parse(success) {
if (success) {

_global.imageArray = new Array();
var root = this.firstChild;
_global.numPause = Number(this.firstChild.attributes.timer * 1000);
var imageNode = root.lastChild;

//number of pictures total
_global.s=0;

//get all the xml info read in
while (imageNode.nodeName != null) {
imageData = new Object;
imageData.path = imageNode.attributes.path;
imageArray[s]=imageData;
imageNode = imageNode.previousSibling;
s++;
}

imageArray.reverse();

//create a movie clip for each image that I need to load
if(s>0){
for(j=0; j< s; j++){
var mc:MovieClip = holder_mc.createEmptyMovieClip("mc"+j, j+1);
}
//start loading the first image, all other images are loaded from the init after the first image is loaded
trace("Loading " + imageArray[count].path + "...");
loader.loadClip(imageArray[count].path, holder_mc["mc"+count]);
}
} else {
trace('problem');
}
}


//then in frame 2 I have this:
//mc1_mc and mc2_mc are two movie clips on the main animation that fade one into another.
//There is more code to change the picture and such, but this is the code I use to grab the pictures
mc1_mc.loadMovie(imageArray[tracker].path);
mc2_mc.loadMovie(imageArray[tracker].path);
//the question is, does this code use the image thats cached in the movie clip (holder_mc.mc1, holder_mc.mc2...etc)
//or does it re-download the picture for use here?