Como no podia detectar la medida de la imagen de ninguna forma he decidido pasar el ancho y el alto a través de la clase Global de as3 (no viene de serie) y resulta que me coge los valores a toro pasado, es decir, para la imagen1 no me coge nada (undefined), para la imagen2 me coge las medidas de la imagen1 y así sucesivamente.
¿Qué puedo hacer? Estoy dándole vueltas y no encuentro la solución.
Es muy urgente.
Esta es la clase:
package
{
import flash.display.Sprite;
import flash.net.URLRequest;
import flash.display.Loader;
import flash.events.*;
import misclases.Global;
public class CargaImagen extends Sprite
{
private var url:String
public function CargaImagen(req:String):void
{
url = req;
var loader:Loader = new Loader();
loader.contentLoaderInfo.addEventListener(Event.COMPLETE, imagenCargada);
loader.contentLoaderInfo.addEventListener(Event.INIT, pasarParametros);
loader.contentLoaderInfo.addEventListener(IOErrorEvent.IO_ERROR, imagenError);
loader.contentLoaderInfo.addEventListener(ProgressEvent.PROGRESS, imagenProgreso);
loader.load( new URLRequest(url));
}
private function imagenCargada(e:Event):void {
trace("Cargada: " + e);
addChild(e.target.content);
}
private function pasarParametros(e:Event):void {
trace("Preparada: " + e);
var global:Global = Global.getInstance();
var alto:int = 310; //alto del contenido
e.target.content.width = (e.target.content.width*alto)/e.target.content.height;
e.target.content.height = alto;
global.setValue("ancho_mc",e.target.content.width);
global.setValue("alto_mc",e.target.content.height);
}
private function imagenError(e:IOErrorEvent):void {
trace("Error: " + e);
}
private function imagenProgreso(e:ProgressEvent):void {
trace("Cargados=" + e.bytesLoaded + " Total=" + e.bytesTotal);
}
}
}