PDA

View Full Version : image slideshow cant remove previous image



bobcooper
May 1st, 2008, 03:23 PM
Hi there I have a basic image slide show loading external images that fades out after each image and then I want to load the next image. However I can't figure out how to remove the old image, at the moment when the image fades out you can see all the previous images fading out too.

Here is the code I am using:


var imageNo:Number = 1;

ImageLoad("images/home/" + imageNo + ".jpg",imageHolderMC);

// image preloader
function ImageLoad(u:String,target){
var targetClip = target;
var _loader:Loader = new Loader();
var request:URLRequest = new URLRequest(u);
_loader.load(request);
targetClip.addChild(_loader);
_loader.contentLoaderInfo.addEventListener(Progres sEvent.PROGRESS, loadProgress);
_loader.contentLoaderInfo.addEventListener(Event.C OMPLETE, completeHandler);


}


function loadProgress(event:ProgressEvent):void {
var percentLoaded:Number = event.bytesLoaded/event.bytesTotal;
percentLoaded = Math.round(percentLoaded * 100);
}

function completeHandler(event):void {
imageHolderMC.alpha = 1;
imageHolderMC.addEventListener(Event.ENTER_FRAME, fadeOut);
function fadeOut(evt:Event):void {
if(imageHolderMC.alpha > 0){
imageHolderMC.alpha -= .02;
} else {
imageHolderMC.removeEventListener(Event.ENTER_FRAM E, fadeOut);
imageNo++;
ImageLoad("images/home/" + imageNo + ".jpg",imageHolderMC);
}
}
}I think it is something to do with removeChild() but I can't figure out where to put it.

Any help would be really er... helpful!

Cheers,

Bob

bobcooper
May 2nd, 2008, 07:57 AM
Ok figured an easier way of doing this:


var imageNo:Number = 1;

movieLoad("images/home/" + imageNo + ".jpg");

function movieLoad(url):void
{
var imageRequest: URLRequest = new URLRequest(url);
var imageLoader: Loader = new Loader();
addChild(imageLoader);

imageLoader.unload();

imageLoader.load(imageRequest);

imageLoader.alpha = 0;
imageLoader.addEventListener(Event.ENTER_FRAME, fadeIn);

function fadeIn(evt:Event):void {
if(imageLoader.alpha < 1){
imageLoader.alpha += .02;
} else {
imageLoader.removeEventListener(Event.ENTER_FRAME, fadeIn);
imageNo++;
imageLoader.addEventListener(Event.ENTER_FRAME, fadeOut);

function fadeOut(evt:Event):void {
if(imageLoader.alpha > 0){
imageLoader.alpha -= .02;
} else {
imageLoader.removeEventListener(Event.ENTER_FRAME, fadeOut);
movieLoad("images/home/" + imageNo + ".jpg");
}
}

}
}

}

However now I have a new problem...

I now want to have two images displayed at the same time, so image 1 goes in the left, then 2 in the right, 3 replaces the left etc.

I was thinking of getting the image to load into separate movieclips but this reverts to not unloading the previous image!

Help... this sort of thing was so much easier with actionscript 2!

Bob