El problema: Cuando le añado acciones a los clips que forman las miniaturas no sé como hacer para que cada uno guarde la ruta de la imagen a la que corresponde. Dicho de otro modo, cuando pincho en cualquiera de las miniaturas, todas me devuelven la ruta de la última miniatura que se ha creado.
A ver si podéis indicarme una manera de solucionarlo o algún ejemplo de como crear clips dinamicamente a partir de un array y asignarle una variable con un valor diferente a cada uno para ver si consigo adaptarlo.
Muchas gracias.
Código actionscript:
Ver original
#include "mc_tween2.as" import mx.transitions.Tween; var menuAbierto = false; menu_mc.btn_menu._visible = false; menu_mc.btn11.onRelease = function(){ almacenaImagen(0,540,45); } menu_mc.btn12.onRelease = function(){ almacenaImagen(1,540,59.5); } miXML = new XML(); miXML.ignoreWhite = true; miXML.onLoad = almacenaSeccion; miXML.load("xml/imagenes.xml"); function almacenaSeccion() { aSeccion = new Array; aSecciones = this.firstChild.childNodes; aDatas = new Array; vTotal = aSecciones.length; for (i=0; i<vTotal; i++) { if(aSecciones[i].nodeName == "seccion") {//si el nombre del nodo es seccion... aSeccion.push(aSecciones[i].attributes.sNombre);//almacena el atributo pNombre en esta array aDatas.push(aSecciones[i].attributes.iD);//almacena el atributo iD en esta array } } } function almacenaImagen(opc, posX, posY) { aRutaT = new Array; aRutaI = new Array; aImagen = new Array; aImagenes = aSecciones[opc].childNodes; aDatasImagen = new Array; vTotalImagen = aImagenes.length; for (i=0; i<=vTotalImagen; i++){ if (aImagenes[i].nodeName == "imagen"){ aImagen.push(aImagenes[i].attributes.iNombre); aDatasImagen.push(aImagenes[i].attributes.iD);//almacena el atributo iD en esta array aRutaT.push(aImagenes[i].attributes.rutaThumb); aRutaI.push(aImagenes[i].attributes.rutaImagen); }else{ crearThumbs(posX, posY); moverBotones(opc) } } } function crearThumbs(posX, posY){ vTotalImagen = aImagenes.length; for (i=0; i<=vTotalImagen-1; i++){ // -- delaro una variable que recoje el atributo del nodo (nombre de la imagen) galeria = aRutaT[i]; identidad = aDatasImagen[i]; // -- creo un clip de película vacio _root.menu_mc.createEmptyMovieClip("diapo"+identidad, i+200); _root.menu_mc.createEmptyMovieClip("bajo"+identidad, i+100); // -- cargo la imágen el clip vacio item = _root.menu_mc["diapo"+identidad]; item.loadMovie(galeria); // -- indico posición x - y item._x = posX; item._y = posY; bajo_clip = _root.menu_mc["bajo"+identidad]; bajo_clip._x = item._x; bajo_clip._y = item._y; // dibujamos el marco with (bajo_clip) { beginFill(0xffffff); lineStyle(1, 0xEEEEEE, 0); lineTo(40, 0); lineTo(40, 40); lineTo(0, 40); lineTo(0, 0); endFill(); } // al pinchar sobre el área del marco, // mostramos la foto grande con la función // verFotoGrande _root.menu_mc["bajo"+identidad].onRelease = function() { trace(aRutaT[i]); }; //desplazo la posicion del siguiente clip posX = posX + 45; } }