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