Comunidad de diseño web y desarrollo en internet online

Limpiar Movieclip de imagenes

Citar            
MensajeEscrito el 04 May 2009 07:08 am
Hola.

Mi problema es el siguiente. Estoy creando una galería dinámica, donde las imágenes se cargan dentro de un movieclip pero al cargar otra imagen y es más chica que la anterior, la imagen más grande queda de fondo. ¿Hay alguna manera de limpiar el movieclip para que no se sobrepongan las imágenes?

Gracias.

Código :

var foto:MovieClip=new MovieClip();

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{
      addChild(foto);
      foto.addChild(loader);
   }
}

Por xCar1osx

2 de clabLevel



 

safari
Citar            
MensajeEscrito el 04 May 2009 07:39 am
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

Por Eliseo2

710 de clabLevel



 

firefox
Citar            
MensajeEscrito el 04 May 2009 08:13 am
Gracias por tomarte el tiempo y muy buena explicación.
El problema ya está resuelto. Muchas gracias!

Por xCar1osx

2 de clabLevel



 

safari

 

Cristalab BabyBlue v4 + V4 © 2011 Cristalab
Powered by ClabEngines v4, HTML5, love and ponies.