Flash XML Thumbnails loading so slowly! Please help

Hi,

I have been having a problem with slow thumbnail loading on my website. I am not sure why because I have continually reduced the thumbnail sizes and they are very small. The thumbnails are pointed to via an XML file. Any help would be immensely appreciated!!!

Here is my code:


stop();

import org.papervision3d.scenes.*;
import org.papervision3d.cameras.*;
import org.papervision3d.objects.*;
import org.papervision3d.materials.*;
import caurina.transitions.*;

var container:Sprite = new Sprite();
container.x = 0;
container.y = 135;
addChild(container);

var scene:Scene3D = new MovieScene3D(container);
var cam:Camera3D = new Camera3D();
cam.zoom = 6.5;
cam.y = 155;
tn_title.text = "";
tn_desc.text = "";
tn_url.text = "";

var radius:Number = 1200;
var anglePer:Number;
var angleX:Number = 0;
var camera_distance:Number = radius * 2;
var dest:Number = 0;
var current:Number = 0;

var filename_list = new Array();
var url_list = new Array();
var url_target_list:Array = new Array();
var title_list = new Array();
var description_list = new Array();
var folder:String = "thumbnails/";
var folder2:String = "gallery/";

var i:Number;
var total:Number;
var flashmo_xml:XML = new XML();
var loader:URLLoader = new URLLoader();
loader.load(new URLRequest("image_list.xml"));
loader.addEventListener(Event.COMPLETE, create_thumbnail);


loader_mc.stop();
loader_mc.visible=false;

function create_thumbnail(e:Event):void 
{
    flashmo_xml = XML(e.target.data);
    total = flashmo_xml.thumbnail.length();
    anglePer = Math.PI * 2 / total;
    for( i = 0; i < total; i++ )
    {
        url_list.push( flashmo_xml.thumbnail*.@url.toString() );
        url_target_list.push( flashmo_xml.thumbnail*.@target.toString() );
        title_list.push( flashmo_xml.thumbnail*.@title.toString() );
        description_list.push( flashmo_xml.thumbnail*.@description.toString() );
        
        var bfm:BitmapFileMaterial = new BitmapFileMaterial(
            folder + flashmo_xml.thumbnail*.@filename.toString());
        bfm.oneSide = false;
        bfm.smooth = true;
        var p:Plane = new Plane(bfm, 140, 105, 2, 2);
        scene.addChild(p);
        
        if (i==0)
            loadImage(folder2 + flashmo_xml.thumbnail[current].@filename.toString());
            
        p.x = Math.cos(i * anglePer) * radius;
        p.z = Math.sin(i * anglePer) * radius;
        p.rotationY = (-i*anglePer) * (180/Math.PI) + 270;
    }
    
    setCurrent(current);
    //setChildIndex(go,numChildren - 1);
}

left.addEventListener(MouseEvent.CLICK, moveLeft);
right.addEventListener(MouseEvent.CLICK, moveRight);
left_big.addEventListener(MouseEvent.CLICK, moveLeft);
right_big.addEventListener(MouseEvent.CLICK, moveRight);
//go.addEventListener(MouseEvent.CLICK, loadHandler);
this.addEventListener(Event.ENTER_FRAME, render);

function moveLeft(e:Event):void
{
    dest--; current--;
    if( current < 0 ) current = total - 1;
    Tweener.addTween(this, {angleX:dest*anglePer, time:0.8, transition:"easeInOutQuart"});
    setCurrent(current);
    loadImage(folder2 + flashmo_xml.thumbnail[current].@filename.toString());
}
function moveRight(e:Event):void
{
    dest++; current++;
    if( current >= total ) current = 0;
    Tweener.addTween(this, {angleX:dest*anglePer, time:0.8, transition:"easeInOutQuart"});
    setCurrent(current);
    loadImage(folder2 + flashmo_xml.thumbnail[current].@filename.toString());
}
function setCurrent(c:Number):void
{
    tn_title.text = title_list[c];
    tn_desc.text = description_list[c];
    tn_url.text = url_list[c];
}

/*function loadHandler(e:Event):void
{
      loadImage(folder2 + flashmo_xml.thumbnail[current].@filename.toString());
}*/


var imageLoader:Loader;
 
function loadImage(url:String):void {

// Set properties on my Loader object
loader_mc.play();
loader_mc.visible=true;

imageLoader = new Loader();
imageLoader.load(new URLRequest(url));
imageLoader.contentLoaderInfo.addEventListener(ProgressEvent.PROGRESS, imageLoading);
imageLoader.contentLoaderInfo.addEventListener(Event.COMPLETE, imageLoaded);

}
 
function imageLoaded(e:Event):void {

// Load Image
if (imageArea_mc.numChildren!=0)
imageArea_mc.removeChildAt(0);

loader_mc.stop();
loader_mc.visible=false;

imageArea_mc.addChildAt(imageLoader,0);
imageArea_mc.x = 0 - (imageArea_mc.width/2);
//left_big.x = 0-imageArea_mc.width/2-left_big.width;
//right_big.x = 0+imageArea_mc.width/2+right_big.width;
}
 
function imageLoading(e:ProgressEvent):void {

// Use it to get current download progress
// Hint: You could tie the values to a preloader :)

}




function render(e:Event):void
{
    cam.x = Math.cos(angleX) * camera_distance;                     
    cam.z = Math.sin(angleX) * camera_distance;
    scene.renderCamera(cam);
}

Thanks,

Ryan