I’m trying to do a simple image gallery with a previous and next button. I have it working nicely with a little crossfade, however I know that I need to remove old instances of my class after they are done being used - I just don’t know how to do it. Especially because I want to wait until the top image/instance is fully faded in before deleting the one below it AND what if someone clicks the next/previous button before the image is fully faded in?
Here is my main movie:
[AS]
function nextImage(evt:Event):void{
currentImage ++;
currentImage = (currentImage < imageTotal) ? currentImage : 0;
addImage();
}
function prevImage(evt:Event):void{
currentImage–;
currentImage = (currentImage < 0) ? imageTotal-1 : currentImage;
addImage();
}
nextBtn.addEventListener(MouseEvent.CLICK, nextImage);
prevBtn.addEventListener(MouseEvent.CLICK, prevImage);
function addImage(){
var image:ImageLoader = new ImageLoader(imageArray[currentImage], 2);
imageHolder.addChild(image);
trace(imageHolder.numChildren);
}
[/AS]
And my image instance:
[AS]
package com{
import flash.display.Sprite;
import flash.display.Loader;
import flash.net.URLRequest;
import flash.events.Event;
import flash.events.MouseEvent;
import gs.TweenLite;
import gs.easing.*;
public class ImageLoader extends Sprite{
private var fileName:String;
private var fadeTime:Number;
private var slideLoader:Loader;
public function ImageLoader(file:String, fTime:Number){
fadeTime = fTime;
slideLoader = new Loader();
slideLoader.contentLoaderInfo.addEventListener(Event.COMPLETE, fadeImageIn);
//slideLoader.contentLoaderInfo.addEventListener(ProgressEvent.PROGRESS, showProgress);
slideLoader.load(new URLRequest(file));
}
private function fadeImageIn(evt:Event):void{
var holder:Sprite = new Sprite();
addChild(holder);
holder.alpha = 0;
holder.addChild(slideLoader.content);
TweenLite.to(holder, fadeTime, { alpha:1, ease:Strong.easeOut });
}
}
}
[/AS]
Any suggestions or help is much appreciated!