Comunidad de diseño web y desarrollo en internet online

Cómo se hace para que el código se ejecute después de la cargar

Citar            
MensajeEscrito el 23 Oct 2011 12:47 am
Hola a todos!, tengo una duda existencial, perdón por el título, pero no sabía como describirlo jeje.

Armé una clase "Producto" que quiero que guarde atributos como su nombre, precio y una foto. Esta clase debe ser instanciada y se le tienen que pasar los datos.

La cosa es que cuando la instacio y desde afuera llamo al metodo que carga la imagen, le paso que imagen quiero cargar, y luego quiero mostrarla, el problema es que el código de mostrar se ejecuta antes de que la imagen termine de cargar por lo que esta tarda, entonces recive null, ya que la imagen aún no ha terminado de cargar.

¿Alguien sabe como puedo solucionar esto o cual es la forma correcta de hacerlo?

Aca le paso el código:
Esta es la clase, parte está comentado por que estaba probando esto de la imagen.

Código ActionScript :

package clases {
   
   import flash.display.Bitmap;
   import flash.net.URLRequest;
   import flash.display.Loader;
   import flash.events.Event;
   import flash.events.ProgressEvent;
   
   public class Producto {
      
      private var _nombre:String;
      private var _precio:Number;
      private var _texto:String;
      private var _imagen:Bitmap;
      private var _tipo:Boolean;
      private var _cantidad:int;
   
      // Initialization:
      /*public function Producto(nombre:String, precio:Number, tipo:Boolean, texto:String) 
      {
         this._nombre = nombre;
         this._precio = precio;
         this._texto = texto;         
         this._tipo = tipo;
         this._cantidad = 1;

         
      }*/
      
      public function cargarImagen(imagen:String):void
      {

         var miCargador:Loader = new Loader();

         var miRutaArchivo:URLRequest = new URLRequest (imagen);

         miCargador.contentLoaderInfo.addEventListener(Event.COMPLETE, cargaFinalizada);

                  
         miCargador.load(miRutaArchivo);
      

                
                
      }
      
      function cargaFinalizada (loader:Event):void {
      
      this._imagen = loader.currentTarget.content;         


      }

      
      /*
      //=========GETTERS=======INICIO
      public function getNombre():String
      {
         return this._nombre;
      }
      
      public function getPrecio():Number
      {
         return this._precio;
      }
      
      public function getTexto():String
      {
         return this._texto;
      }
      
      public function getTipo():Boolean
      {
         return this._tipo;
      }
      
      public function getImagen():Bitmap
      {
         
         return this._imagen;

      }
      
      
      public function getCantidad():int
      {
         return this._cantidad;      
      }
      //=========GETTERS=======FIN
      */


      public function getImagen():Bitmap
      {
         
         return this._imagen;

      }

   }
   
}





Y este es el fla:

Código ActionScript :


import clases.Producto;

var prod:Producto = new Producto();

prod.cargarImagen('img/2.jpg')


var mc:MovieClip = new MovieClip();

mc.addChild(prod.getImagen());

addChild(mc);






Muchas Gracias

Por Hiko

13 de clabLevel



 

firefox
Citar            
MensajeEscrito el 23 Oct 2011 12:49 am
Por alguna razón el editor del post no me acepto el cierre del return ni el new MovieClip() junto con
mc.addChild(prod.getImagen());

addChild(mc);

pero están.

Por Hiko

13 de clabLevel



 

firefox

 

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