Tengo un problema con los eventos, necesito cambiar el nombre de una variable de forma dinámica cuando la creo en el bucle for, o de alguna otra forma, sino al hacer addEventListener siempre se queda escuchando el event para la última imagen creada y no en todas como yo quiero.
Tengo una clase InfoWindowTabbedComponent , su constructor recibe un objeto de tipo Marker, un identificador de unobjeto marker y un array de objetos XML que son imágenes donde uno de los campos contiene la ruta en el directorio donde se encuentra la imagen.
Basicamente el constructor crea un panel definiendo como child un HBox.
Recorro el array de imágenes y por cada imagen creo un objeto image, que lo añado al HBox, a cada objeto image le añado 2 eventos de Mouse, si MouseOver la imagen se verá mas grande, si MouseOut la imagen se verá más pequeña.
El problema como he dicho,es que si el vector tiene varias imágenes, el MouseEvent se queda escuchando solamente para la última imagen creada, es decir si el HBox tiene 7, solo la séptima cambiará de tamaño, aunque me posicione en la primera, segunda, tercera o cualquiera de las imágenes de la galería.
Había pensado en crear una variable con nombre diferente para cada imagen. algo como
var ("img"+i):Image=new Image();
Pero no consigo hacerlo, alguna solución? hay otra forma más elegante de hacerlo sin usar el bucle for y concatenando cadenas?
A continuación os pongo el código. Gracias.
Código :
public function InfoWindowTabbedComponent(m:Marker,id_m:int,imag_marca:Array) {
var panel:Box = new Box();
panel.width = (200+150*imagenes_marca.length);
panel.height = (200+100*imagenes_marca.length);
var hbox:HBox = new HBox ();
var img:Image;
for (var i:Number = 0; i < imagenes_marca.length; i++) {
img =new Image();
img.source=imagenes_marca[i].@ruta;
img.width=50;
img.height=50
img.maintainAspectRatio=true;
hbox.addChild(img);
img.addEventListener(MouseEvent.MOUSE_OVER, function(e:MouseEvent):void {
img.width=100;
img.height=100
});
img.addEventListener(MouseEvent.MOUSE_OUT, function(e:MouseEvent):void {
img.width=50;
img.height=50
});
panel.addChild(hbox);
addChild(panel);
}
} 






