Comunidad de diseño web y desarrollo en internet online

EventDispatcher para varias imagenes Ayuda!!

Citar            
MensajeEscrito el 24 May 2009 05:33 am
Hola estoy buscando alguna forma a ver si a alguien se le ocurre para verificar que un array con 10 imagenes llego a su final de carga, o sea no verificar una imagen en particular sino todo el array, mediante AS3 con el Dispatcher de eventos. para disparar una función al finalizar el total de la carga de las imagenes dentro del array. desde ya muchas gracais!!

Por madescoces

15 de clabLevel



 

msie7
Citar            
MensajeEscrito el 25 May 2009 06:41 am
no tienes más que tener en una variable un contador y, cuando el contador llega a un determinado número dispatchar un evento personalizado. Un ejemplo simple

Código ActionScript :

int contador:0

function onFinal(e:Event){
    contador++
    if (contador>10){
      dispatchEvent(new Event("ALL"));
    }
}
for (int:i=0;i<10;i++){
     var loader:Loader=new Loader();
     loader.contentLoaderInfo.addEventListener(Event.INIT,onFinal)
     loader.load(new URL(direcciones[i]);
     addChild(loader);
}

Por Eliseo2

710 de clabLevel



 

firefox
Citar            
MensajeEscrito el 26 May 2009 01:53 am
si en realidad ni siquiera necesite un contador, ya que cuando vas agregando cosas a un array, el lenght del mismo crece, por lo que hice esto:

Código :

private function loaders(source:String):void {
         if (numChildren != 0) {
            removeChild(this._baseBox);
         }
         xmlLoader = new XMLoader(source);
         xmlLoader.addEventListener(XMLoader.XML_COMPLETO,cargar);
         function cargar(event):void {
            for (var i:uint = 0; i < xmlLoader.xml.children().children().length(); i++) {
               thumbArray[i] = new ImageLoader(xmlLoader.xml.children().children()[i]. @ thumb,false);
               thumbArray[i].name = i;
               if (thumbArray.length == xmlLoader.xml.children().children().length()) {
                  thumbArray[i].addEventListener(ImageLoader.COMPLETE,pintarPantalla);
               }
            }

            function pintarPantalla(e:Event):void {
               //Asignación de valores a las variables para los thumbnails
               _thumbWidht = e.target.width;
               _thumbHeight = e.target.height;


               boxMaker(_baseBox,false,false);
               boxMaker(_thumbBox,true,true);
               addChild(_baseBox);
               _baseBox.addChild(_thumbBox);
               dispatchEvent(new Event(COMPLETE));
            }
         }
      }


por lo que cuando este condicional da la igualdad entre el lenght del xml y del array pum se terminaron de cargar todas las imagenes y puedo disparar un solo evento

Código :

            if (thumbArray.length == xmlLoader.xml.children().children().length()) {


inicialmente hice lo del contador pero de casualidad cai en cuenta de que el lenght crecia en conjunto con la variable i del bucle for, por lo que obvie esta variable e hice una comparación de lenght directas.

te digo cuando me di cuenta que esta era la solución, me dije a mi mismo dios como algo tan simple me llevo tanto, por lo que creo voy a empezar a trabajar mas despierto x).

Por madescoces

15 de clabLevel



 

firefox

 

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