Galería de imágenes con AS y XML
Hola a todos/as,
Estoy intentando hacer una galeria con xml, el problema es que al hacer clic sobre los thumbs del menu quiero que me lleva a la coleccion correspondiente. Por ahora solo consigo que me devuelva el id de la ultima coleccion y no se porque, pego el codigo por si me podeis hechar un mano que esto empieza a ser urgente y le estoy dando ya demasiadas vueltas...
x = 40;
y = 200;
//--------------------------
_global.ancho = 238; //Ancho imagen
_global.alto = 159;
//--------------------------
contenedor_mc._x = 0;
contenedor_mc._y = 0;
//----------------------------
System.useCodepage = true;
_global.datos = new XML();
datos.ignoreWhite = true;
datos.onLoad = function() {
for (var i = 0; i<datos.firstChild.childNodes.length; i++) {
_root.cont = datos.firstChild.childNodes.length;
ruta = datos.childNodes[0].childNodes[i].attributes.archivo;
ids = datos.childNodes[0].childNodes[i].attributes.id;
var imagen:MovieClip = contenedor_mc.createEmptyMovieClip("imagen"+i, i+1000);
contenedor_mc.id = i;
imagen._x = x;
imagen._y = y;
imagen.loadMovie(ruta);
x += ancho;
// Btn que deberia devolverme el id de cada imagen en concreto
contenedor_mc.onPress= function(){
trace(this.id);
}
// Control de número de columnas
if (x >= ancho*4) {
x = 40;
y += alto;
}
}
};
datos.load("xml/imagenesIndex.xml");
gracias de antemano,
Un saludo! LaloP
jesusjl
pues no lo he revisado muy bien, pero creo que estas generando imagenes dentro de un mismo contenedor (contenedor_mc) y el boton es ese mismo contenedor. osea que no hay un boton para cada imagen.
otra cosa es, cuando asignas acciones a botones mediante un bucle for() y dentro de esas acciones esta la variable i, generalmente el boton coge el ultimo valor de i, por eso te recomiendo darle una variable al boton en base a i, y en la accion del boton usas esa variable del propio boton:
bueno es mejor ver un codigo de ejemplo para entenderlo que leer lo que escribí, ahi te va:
for(var i:Number=0; i<TOTAL; i++) {
// Carga del thumb dentro de un contenedor unico:
thumbs["contenedor"+i].load(ruta);
// variable unica para cada boton:
thumbs["contenedor"+i].miVariable = new Number(i);
// las acciones son en base a su propia variable,
// de otra forma i valdrá el valor de TOTAL:
thumbs["contenedor"+i].onRelease = function() {
trace(this.miVariable);
}
}
espero te sirva, suerte!
J