tienes dos opciones
Usar removeChild o removeChildAt para eliminar el "loader", o usar un único loader
Me explico. Al principio de tu película no tienes nada, una vez pulsado el botón tienes
Código ActionScript :
foto
|----loader
cuando se pulsa de nuevo el botón, el primer addchild de foto NO hace nada, puesto que ya está añadido, pero creas un nuevo "loader" que lo añades a foto, luego tienes
Código ActionScript :
foto
|----loader
|----loader
tienes pues dos opciones
Código ActionScript :
//tenemos foto y loader y los añadimos a la escena simplemente
var foto:MovieClip=new MovieClip();
var loader:Loader=new Loader();
addChild(foto);
foto.addChild(loader);
function clickenBtn(event:MouseEvent):void{
loader.load(new URLRequest("./contenido/galeria/1/1.jpg"));
loader.contentLoaderInfo.addEventListener(Event.COMPLETE, alCompletar);
}
function alCompletar(event:Event):void{
trace("completado") //<--no hace falta añadir nada al Stage
}
ó otra opción
Código ActionScript :
var foto:MovieClip=new MovieClip();
//añadimos aquí el Mc "foto"
addChild(foto);
function clickenBtn(event:MouseEvent):void{
var loader:Loader=new Loader();
loader.load(new URLRequest("./contenido/galeria/1/1.jpg"));
loader.contentLoaderInfo.addEventListener(Event.COMPLETE, alCompletar);
}
function alCompletar(event:Event):void{
//eliminamos el loader si lo hubiera
foto.removeChildAt(0)
//lo volvemos a añadir
foto.addChild(event.target.loader);
}
NOTA IMPORTANTE:
He cambiado la función "alCompletar" y la he declarado FUERA del botón clickenBtn. Eso hace que, en el segundo ejemplo, como "loader" es sólo una variable que funciona exclusivamente dentro de la función clickenBtn, NO puedo usarla.
Ese es el motivo por el que uso event.target (concretamente la propiedad "loader" de event.target, que es donde se ha declarado el evento