Comunidad de diseño web y desarrollo en internet online

informacion de imagenes cargadas

Citar            
MensajeEscrito el 22 Dic 2011 05:57 pm
Hola a todos

Estoy cargando varias imagenes, y con un dispacher aviso que la imagen ya cargó. Cuando carga tengo que configurar algunas cosas de esa imagen, pero pierdo la referencia de qué imagen estoy cargando en ese instante y por lo tanto no puedo asociarle los datos que corresponden a cada imagen. ¿Existe alguna forma de recuperar esa información? algo como ".target" o un ".info" del parametro "e" del Event que me permita saber qué imagen es... ?

Código ActionScript :

private function eventoImagenCargada(e:Event):void{
         try{
                                count++;
            if(count == 10)
            {
               var instancias = ArrayDataA.getInstancia().instancias;
                                         //"instancias" contiene la informacion de la imagen que cargué 
               for (var i = 0; i < instancias.length; i++) {
                  format.formateando(instancias[i]);
               }
               format.visibilidad("head", 0);
            }
         }
         catch(e:Error){
            nose.text = e;
         }
      }




actualmente estoy contanto con " count" cuantas imagenes pedí, para poder asignarle los datos una vez que han cargado todas la imagenes, pero esto es incómodo y no me permite hacer otras cosas.

Ya, gracias :D
Y felices fiestas a todos

Por ayslin

15 de clabLevel



 

firefox
Citar            
MensajeEscrito el 23 Dic 2011 04:34 am
Estas son las propiedades del Event.COMPLETE según la ayuda

bubbles: false
cancelable false; there is no default behavior to cancel.
currentTarget: The object that is actively processing the Event object with an event listener.
target: The network object that has completed loading.

¿Probaste con target?

Jorge

Por solisarg

BOFH

13669 de clabLevel

4 tutoriales
5 articulos

Genero:Masculino   Bastard Operators From Hell Premio_Secretos

Argentina

firefox
Citar            
MensajeEscrito el 26 Dic 2011 06:44 pm
Gracias por contestar.

Sí, ya lo había intentado, pero como estoy usando un dispacher que crea mis propios eventos, sólo devuelve " [object ClaseDispatcher]" que es el objeto que despachó el evento, pero no sé cómo acceder a la información de la imagen que cargó. Sospecho que debe haber una forma de recuperar esa información en mi ClaseDispacher que hereda de EventDispatcher, pero excepto por una variable temporal que guarde la información de la imagen, solución que no me gusta pues es algo insegura, ¿qué otras opciones tengo de obtener ese dato?

Por ayslin

15 de clabLevel



 

firefox
Citar            
MensajeEscrito el 26 Dic 2011 11:55 pm
asi como lo has planteado deberas crear una variable que almacene ya sea el actual loader o bien un arreglo de loaders, esta variable si es privada deberas acceder por get cuando escuches el evento solo casteas tu clase y accedes a la variable,suponiendo que tienes algo asi en tu clase "ClaseDispatcher"

Código ActionScript :

package  
{
   import flash.display.Loader;
   import flash.display.LoaderInfo;
   import flash.events.Event;
   import flash.events.EventDispatcher;
   import flash.net.URLRequest;
   
   public class ClaseDispatcher extends EventDispatcher 
   {
      private var _info:LoaderInfo;
      
      public function ClaseDispatcher() 
      {
         var l:Loader = new Loader();
         l.contentLoaderInfo.addEventListener(Event.COMPLETE, onComplete);
         try 
         {
            l.load(new URLRequest("assets/davide_squillace.jpg"));
         }catch (err:Error)
         {
            trace(err.message);
         }
      }
      private function onComplete(e:Event):void 
      {
         //_info hara referencia a toda la informacion del loader
         _info = e.target as LoaderInfo
         //aqui nos vale disparar la misma constante o evento podria ser una personalizada
         dispatchEvent(e);
      }
      
      public function get info():LoaderInfo 
      {
         return _info;
      }
      
   }

}


y en la clase Main o donde instancies..

Código ActionScript :

package 
{
   import flash.display.LoaderInfo;
   import flash.display.Sprite;
   import flash.events.Event;
   
   public class Main extends Sprite 
   {
      
      public function Main():void 
      {
         if (stage) init();
         else addEventListener(Event.ADDED_TO_STAGE, init);
      }
      
      private function init(e:Event = null):void 
      {
         removeEventListener(Event.ADDED_TO_STAGE, init);
         // entry point
         var dis:ClaseDispatcher = new ClaseDispatcher();
         dis.addEventListener(Event.COMPLETE, onComplete);
      }
      
      private function onComplete(e:Event):void 
      {
         var info:LoaderInfo = ClaseDispatcher(e.target).info;//recuperas es objeto LoaderInfo
         trace(info.content, info.contentType, info.width, info.height);
      }
      
      
   }
   
}

como ejemplo solo recupero un objeto podria ser un vector o un diccionario de loader info en caso de que cargues mas imagenes, hay otra forma de hacer esto mas chulo y es que te crees un evento personalizado y lo pases como parametro al momento de disparar el evento hay un tuto aqui en el cl que habla de ello.

Por maneuver

243 de clabLevel



Genero:Masculino  

Mexico City

firefox

 

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