Comunidad de diseño web y desarrollo en internet online

Solucionar tema bucle con loader...

Citar            
MensajeEscrito el 06 Feb 2011 10:42 pm
Saludos!
Tengo el siguiente codigo que se encarga de cargar varias imagenes a un array mediante un loader y un bucle for.
El problema esta que al mostrar al final la longitud del array donde se guardan las imagenes(galeria),pone en el output 0,pero si lo pongo el galeria.lenght dentro de la funcion OnComplete,muestra la longitud bien,pero una vez que ha salido del for y ha mostrado el 0.Supongo que sea porque cuando finaliza el for aun esta cargando las imagenes..
¿Alguna manera de detener el bucle for hasta que termine de cargar la imagen que procese en ese momento?

Código ActionScript :

public function ShowImage(direccion:Array):void
      {
         
         for(var i=0;i<direccion.length;i++)
         {
            var loader:Loader = new Loader();
            var peticion:URLRequest=new URLRequest(direccion[i]);
            loader.contentLoaderInfo.addEventListener(Event.COMPLETE,OnComplete);
            loader.load(peticion);
            function OnComplete(eve:Event)
            {
               //La redimensionamos
               loader.height=100;
               loader.width=100;
               galeria.push(loader.content);
            }
            
         }
         trace(galeria.length);//Muestra 0
      }

Por shoto_reaper

13 de clabLevel



 

chrome
Citar            
MensajeEscrito el 06 Feb 2011 10:55 pm
BuenAS:

Código ActionScript :

     public function ShowImage(direccion:Array):void 
      { 
          
         for(var i=0;i<direccion.length;i++) 
         { 
            var loader:Loader = new Loader(); 
            var peticion:URLRequest=new URLRequest(direccion[i]); 
            loader.contentLoaderInfo.addEventListener(Event.COMPLETE,OnComplete); 
            loader.load(peticion); 
             
         } 
         
      } 
           function OnComplete(event:Event) 
            { 
              var loader:Loader = LoaderInfo(event.target).loader;
               //La redimensionamos 
               loader.height=100; 
               loader.width=100; 
               galeria.push(loader.content); 
              trace(galeria.length);//Muestra 0 
            } 

Un saludo.

Por Lukánicos

Claber

468 de clabLevel



Genero:Masculino  

chrome
Citar            
MensajeEscrito el 07 Feb 2011 07:28 am
Shoto, no hay ninguna forma. el método "load" lo que hace es "mandar a cargar", así que sólo sabes si has acabado en la función onCompleted.
Vamos, si lo que quieres es cargar uno a uno (uno detrás de otro) NO lo puedes hacer con un bucle. Lo tienes que hacer llamando en el onCompleted a una función. Es esquema es más o menos

Código ActionScript :

var index:int=0 //<--una variable
var loader:Loader //<--un único loader
loader.addEventListener(Event.COMPLETE,OnComplete);
function onComplete(e:Event){
     //hacemos algo con 
     //loader.content
     //y llamamos a
    cargarSiguiente()
}
function cargarSiguiente()
    index++
    if (index<10){
       loader.load("pelicula"+index)
    }
}

Por Eliseo2

710 de clabLevel



 

firefox
Citar            
MensajeEscrito el 07 Feb 2011 02:44 pm
Tu respuesta Eliseo2 funciono!

Por shoto_reaper

13 de clabLevel



 

chrome

 

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