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