Mi problema es que no pasa de una página a la siguiente, no mueve las fotos para ver las siguientes, y están todas cargadas. Les dejo los code de cómo importa del xml y acomoda en el escenario, y de los botones para la transición de una página a otra. Muchas gracias.
Código ActionScript :
// acciones en fotograma 1 stop(); System.useCodepage = true; XML.prototype.ignoreWhite = true; import mx.transitions.Tween; // separacion-> distancia entre las imágenes // tanto horizontal como vertical var separacion:Number = 86; // vbles para pasar de página var pagina_actual:Number = 1; var num_paginas:Number; // array donde metemos los elementos del XML var IMG_array:Array; // objeto XML que carga la lista de miniaturas var miniaturasXML:XML = new XML(); miniaturasXML.onLoad = mostrarMiniaturas; //miniaturasXML.load("/asp/verMiniaturas.asp"); miniaturasXML.load("verMiniaturas.php"); // funcion que se ejecuta al cargar el XML function mostrarMiniaturas():Void { // contadores de columna y fila para // disponer las miniaturas var fila:Number = 0; var col:Number = 0; // paso los datos del XML al array IMG_array = this.firstChild.childNodes; // como caben 20 fotos por página podemos // saber el núm de páginas necesarias para // mostrar todas las fotos num_paginas = Math.ceil(IMG_array.length/12); // creo el clip donde meteremos todas las miniaturas var lienzo:MovieClip = _root.createEmptyMovieClip("lienzo_miniaturas", _root.getNextHighestDepth()); lienzo.cacheAsBitmap = true; // lo posiciono donde nos conviene lienzo._x = 0; lienzo._y = 0; // y lo enmascaro con el clip situado en la // capa mascara. se enmascara para hacer el deslizamiento del // clip cuando tengamos muchas miniaturas y no entren todas a // la vez en pantalla (nuestro caso) //lienzo.setMask(mascara_mc); // recorro el array que contiene la lista con los nombres de // los archivos de las miniaturas e invoco la función crearMiniatura // que es la que carga la imagen, la recoloca, le pone un pequeño // marco y le asigna las acciones para verla ampliada for (var k:Number = 0; IMG_array[k]; k++) { // extraigo la ruta del archivo de imagen // var ruta:String = "minis/"+IMG_array[k].attributes.nombre; // como sólo tengo diez columnas, cuando llegue a // la décima, avanzo una fila y retorno a la primera if (col>2) { col = 0; fila++; } // creo la miniatura. extraigo la ruta del archivo de imagen // y la paso como tercer parámetro crearMiniatura(col, fila, IMG_array[k].attributes.nombre); col++; } } function crearMiniatura(columnaF:Number, filaF:Number, ruta:String) { // bajo_clip es el clip que contendrá el marco de la miniatura var bajo_clip:MovieClip = lienzo_miniaturas.createEmptyMovieClip("bajo_"+filaF+"_"+columnaF, lienzo_miniaturas.getNextHighestDepth()); // clip contendrá la imagen var clip:MovieClip = lienzo_miniaturas.createEmptyMovieClip("foto_"+filaF+"_"+columnaF, lienzo_miniaturas.getNextHighestDepth()); // para cargar la miniatura definimos un objeto MovieClipLoader // y un objeto detector de eventos var mi_mcl:MovieClipLoader = new MovieClipLoader(); var miListener:Object = new Object(); mi_mcl.addListener(miListener); clip.valor = "aaa"; // cargamos la imagen mi_mcl.loadClip("fp/"+ruta, clip); miListener.onLoadStart = function(target_mc:MovieClip) { // cuando comienza la carga de la imagen // ponemos al _alpha a 0 target_mc._alpha = 0; }; miListener.onLoadProgress = function(target_mc:MovieClip, bytesLoaded:Number, bytesTotal:Number) { // aquí podéis poner acciones para mostrar una precarga, // este caso no lo hemos considerado oportuno }; // cuando ya se ha completado la carga y tenemos disponible el clip miListener.onLoadInit = function(target_mc:MovieClip) { // recolocamos la imagen (todavía está oculta, con _alpha=0) target_mc._x = (separacion*columnaF)+(86-target_mc._width)*0.5; target_mc._y = (separacion*filaF)+(86-target_mc._height)*0.5; // recolocamos el marco que rodea a la foto bajo_clip._x = target_mc._x-1; bajo_clip._y = target_mc._y-1; // dibujamos el marco with (bajo_clip) { beginFill(0x000000); lineStyle(1, 0x000000, 100); lineTo(target_mc._width+1, 0); lineTo(target_mc._width+1, target_mc._height+1); lineTo(0, target_mc._height+1); lineTo(0, 0); endFill(); } // al pinchar sobre el área del marco, // mostramos la foto grande con la función // verFotoGrande bajo_clip.onRelease = function() { verFotoGrande(ruta); }; // muestro la miniatura animando el _alpha hasta 100 var myTween:Tween = new Tween(target_mc, "_alpha", mx.transitions.easing.Regular.easeOut, 0, 100, 2, true); }; } function verFotoGrande(ruta:String) { getURL("javascript:muestraImagen('"+ruta+"');"); } // con esta función desplazo el lienzo de las miniaturas para // pasar de página function moverLienzo(posY:Number):Void { var myTween:Tween = new Tween(lienzo_miniaturas, "_y", mx.transitions.easing.Regular.easeOut, lienzo_miniaturas._y, posY, 1, true); } /* function moverLienzo(posX:Number):Void { var myTween:Tween = new Tween(lienzo_miniaturas, "_x", mx.transitions.easing.Regular.easeOut, lienzo_miniaturas._x, posX, 1, true); } */ // deshabilito de inicio el botón de volver atrás // ya se muestra la página 1 pMenos_btn.enabled = false; pMenos_btn._alpha = 30;
boton para pasar a la siguiente página:
Código ActionScript :
on (release) { // activo el botón página- pMenos_btn.enabled = true; pMenos_btn._alpha = 100; moverLienzo(100-(pagina_actual*340)); //moverLienzo(0-(pagina_actual*280)); pagina_actual++; // si llego a la última página // ya no puedo avanzar, por tanto // deshabilito el botón if (pagina_actual == num_paginas) { pMas_btn.enabled = false; pMas_btn._alpha = 30; } }
Boton para pasar a la anterior página:
Código ActionScript :
on (release) { // activo el botón página+ pMas_btn.enabled = true; pMas_btn._alpha = 100; moverLienzo(259-(pagina_actual-2)*56); //moverLienzo(0-(pagina_actual-2)*280); pagina_actual--; // si llego a la primera página // ya no puedo retroceder, por tanto // deshabilito el botón if (pagina_actual == 1) { pMenos_btn.enabled = false; pMenos_btn._alpha = 30; } }
Salut! Emiliano