Comunidad de diseño web y desarrollo en internet online

Cargar imagenes con Loader dentro de un for

Citar            
MensajeEscrito el 11 Ene 2011 10:59 am
Hola amigos, quiero cargar una serie de imágenes externas y uso un "Loader", el cual lo llamo dentro del bucle "for" . Obviamente termino añadiendo la imagen utilizando el método "loader.contentLoaderInfo.addEventListener(Event.COMPLETE, imagenCargada)".

El problema es que solamente me carga la última imagen. ¿Dónde se meten las otras imágenes? No es problema de sobreposición de imágenes porqué esto ya me he assegurado que no pase añadiendo un valor sumatorio a la posición x de cada imagen. Seguramente se debe a que debería usar el "dispatchevent", si el problema viene de aquí, ¿cómo uso el dispatchevent?

Grácias por vuestra ayuda.

Por CLAnonimo

Claber

600 de clabLevel

5 tutoriales
1 articulo

 

Este es un usuario anónimo genérico para las cuentas borradas o perdidas.

msie8
Citar            
MensajeEscrito el 11 Ene 2011 12:06 pm
Seguramente debes estar usando el valor de un contador dentro de un handler, pisándolo una y otra vez para quedarte solo con el último. Pon el código

Jorge

Por solisarg

BOFH

13669 de clabLevel

4 tutoriales
5 articulos

Genero:Masculino   Bastard Operators From Hell Premio_Secretos

Argentina

firefox
Citar            
MensajeEscrito el 11 Ene 2011 01:49 pm
Aquí os dejo el código:

Código ActionScript :

public class principal extends MovieClip
   {
      
      private var loader:Loader;
      private var posX:int = 0; //Posición de la imagen en el eje X
      
      public function principal():void
      {
         //Cargamos el archivo XML que contiene las imágenes que aparecerán en las galerías
         /* ------------ Cargo al fichero XML ---------------- */
         // Create an object that can load external text data
         var urlLoader: URLLoader = new URLLoader( );
         urlLoader.dataFormat = URLLoaderDataFormat.TEXT;
         // Register to be notified when the XML finishes loading
         urlLoader.addEventListener(Event.COMPLETE, cargaImagenesXMLCompleta); //Llamamos a la función cargaArchivoXMLCompleta una vez hemos completado la carga del XML
         // Specify the location of the external XML
         var urlRequest:URLRequest = new URLRequest("imagenes.xml");
         // Load the XML
         urlLoader.load(urlRequest);
         /* ------------------------------------------------- */      
   
      }
      
      
      private function cargaImagenesXMLCompleta(e:Event):void
      {
         var galleryXML: XML;
         var contenedor:Sprite = new Sprite(); //Este contenedor es para meter las imágenes dentro.
         var imageCollection:Array = new Array(); //Vamos a meter todas las imágenes dentro del array.
         var loaderXML:URLLoader = e.target as URLLoader;
         
         if (loaderXML != null)
         {
            galleryXML = new XML(loaderXML.data);
            trace(galleryXML.toXMLString());
            //Tenemos que obtener las imágenes del XML
            for each(var imagen:XML in galleryXML.elements())
            {
               imageCollection.push([email protected]());
               //Tengo todas las imágenes metidas en el array(imageCollection) -> es un array que empieza por el 0
            }         
         }
         else
         {
            trace("LoaderXML is not a URLLoader.");
         }
for (var i:uint=0; i<imageCollection.length-1; i++)
         {
            trace(imageCollection[i].toString());
            CargarImagenesBitmap(imageCollection[i].toString());
         }
         
      }
         
      
      private function CargarImagenesBitmap(nombreImagen:String):void
      {
         loader = new Loader();
         
         //Register to be notified when the bitmap has been loaded
         // and initialized
         loader.contentLoaderInfo.addEventListener(Event.COMPLETE, imagenComplete);
         
         // Load the bitmap
         loader.load(new URLRequest(nombreImagen.toString()));
         
      }
      
      // Triggered when the bitmap has been loaded and initialized
      private function imagenComplete (e:Event):void 
      {
         // Add the loaded bitmap to display list
         loader.content.x= posX;
         posX = posX + 10;
         //posX = posX + loader.content.width;
         addChild(loader.content);
         trace("Cargada: " + e);
         
      }
      }
}

Por CLAnonimo

Claber

600 de clabLevel

5 tutoriales
1 articulo

 

Este es un usuario anónimo genérico para las cuentas borradas o perdidas.

msie8
Citar            
MensajeEscrito el 11 Ene 2011 02:03 pm
El Loader es una propiedad de clase que sobreescribes cada vez, hazla variable local de la función (no la declares anivel de clase) para que cada carga apunte a un Loader distinto y no sobreescribas el mismo

Jorge

Por solisarg

BOFH

13669 de clabLevel

4 tutoriales
5 articulos

Genero:Masculino   Bastard Operators From Hell Premio_Secretos

Argentina

firefox
Citar            
MensajeEscrito el 11 Ene 2011 02:15 pm
Ahora sí, perfecto.
Muchas grácias.

Por CLAnonimo

Claber

600 de clabLevel

5 tutoriales
1 articulo

 

Este es un usuario anónimo genérico para las cuentas borradas o perdidas.

msie8

 

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