Salve a tutti, vorrei un' amimazione ,costituita da dei cerchietti posizionati in modo casuale,per far alternare delle immagini, sono riuscita a far comparire le immagini ma non riesco a creare una dissolvenza, nel senso che quando carico la nuova immagine quella vecchia scompare io invece vorrei che restasse sulla stage fino a chè limmagine non è completamente caricata.

ecco il mio codice xml:
Codice PHP:
<slideshow speed="2">
<
image url="images/01.jpg" />
<
image url="images/02.jpg" />
<
image url="images/03.jpg" />
<
image url="images/04.jpg" />
</
slideshow
e il codice as3:
Codice PHP:
var my_speed:Number;
var 
my_total:Number;
var 
my_xmlList:XMLList;

/*counter*/
var my_playback_counter:Number 0;

/*creo i contenitori*/
var my_slideshow:Sprite = new Sprite();
var 
maskContainer:Sprite = new Sprite();
var 
my_image_slides:Sprite = new Sprite();
var 
my_preloaders:Sprite = new Sprite();

maskContainer.cacheAsBitmap=true;
my_image_slides.cacheAsBitmap=true;


var 
my_timer:Timer;

/*carico l'xml*/
var my_xml_loader:URLLoader = new URLLoader();
my_xml_loader.load(new URLRequest("slideshow-data.xml"));
my_xml_loader.addEventListener(Event.COMPLETEprocessXML);

function 
processXML(e:Event):void {

    var 
my_xml:XML = new XML(e.target.data);
    
my_speed=my_xml.@SPEED;
    
my_xmlList=my_xml.IMAGE;
    
my_total=my_xmlList.length();
    
my_xml_loader.removeEventListener(Event.COMPLETEprocessXML);
    
my_xml_loader null;
    
createContainer();
    
callImages(0);

    
my_timer = new Timer(my_speed*2000);
    
my_timer.addEventListener(TimerEvent.TIMERtimerListener);
    
my_timer.start();

}

function 
createContainer():void {
    
addChild(my_slideshow);
    
my_slideshow.x=0;
    
my_slideshow.addChild(my_image_slides);
    
my_image_slides.0;
    
my_slideshow.addChild(my_preloaders);
}

function 
callImages(num:int):void {
    
my_image_slides.addChild(maskContainer);

    var 
timer:Timer=new Timer(40,10);
    
timer.addEventListener(TimerEvent.TIMERtimerEvent);
    
timer.start();

    var 
my_url:String my_xmlList[num].@URL;
    var 
my_loader = new Loader();
    
my_loader.load(new URLRequest(my_url));
    
my_loader.contentLoaderInfo.addEventListener(Event.COMPLETEimageLoaded);

    var 
preloader_pb:ProgressBar = new ProgressBar();
    
preloader_pb.source my_loader.contentLoaderInfo;
    
preloader_pb.my_loader.x;
    
preloader_pb.stage.stageHeight-preloader_pb.height;
    
preloader_pb.width =stage.stageWidth;
    
my_preloaders.addChild(preloader_pb);

    
preloader_pb.addEventListener(Event.COMPLETEdonePb);

}
function 
imageLoaded(e:Event):void {
    var 
my_image:Loader Loader(e.target.loader);
    
my_image_slides.addChild(my_image);
    
my_image.cacheAsBitmap=true;
    
my_image.mask maskContainer;
}

function 
donePb(e:Event):void {
    var 
my_pb:ProgressBar ProgressBar(e.target);
    
my_preloaders.removeChild(my_pb);

}

function 
timerListener(e:TimerEvent):void {
    
removeMaskShape();
    
my_playback_counter++;
    if (
my_playback_counter == my_total) {
        
my_playback_counter =0;
    }
    
callImages(my_playback_counter);
}
function 
hidePrev():void {
    var 
my_image:Loader=Loader(my_image_slides.getChildAt(0));
    
my_image_slides.removeChild(my_image);
}

/*----Gestisco la maschera----*/

function timerEvent(e:TimerEvent):void {

    var 
maskShape:MaskShape = new MaskShape();
    
maskShape.scaleX 0;
    
maskShape.scaleY 0;

    
maskShape.Math.random() * stage.stageWidth;
    
maskShape.Math.random() * stage.stageHeight;

    
maskContainer.addChild(maskShape);
    
maskShape.alpha=0;
    
maskShape.addEventListener(Event.ENTER_FRAMEanimateMaskShape);

}

function 
animateMaskShape(e:Event):void {
    
e.target.scaleX += 0.05;
    
e.target.scaleY += 0.05;
    
e.target.alpha +=0.01;
}

function 
removeMaskShape():void {

    var 
count:uint maskContainer.numChildren;
    
//trace(count);
    
for (var i:uint=0i<counti++) {
        
maskContainer.removeChildAt(0);
    }
    
//hidePrev();

mi sapete dire dove sbaglio?

Creazie
Ciao