Hola a todos!!
que tal?
Mi problema es el siguiente: he hecho una galería de imágenes que funciona muy bien, pero no se como colocar las imágenes y que se vean bien. :cry:
Me explico, me gustaría poder determinar el numero de imagenes en miniatura que quiero por pantalla y también que cuando volviese atrás (arriba) no se me corten las imagenes debido a que retroceden demansiado o demasiado poco.

Si alguien me puede decir como interpretar el codigo o donde tengo que modificarlo, le estaria muy agradecida.

Este es el codigo que tengo en el stage:

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 = 140
;
// 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");
// 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 12 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/16);
   // 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 = 22;
   lienzo._y = 140;
   // 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_woman/"+IMG_array[k].attributes.nombre;
      // como sólo tengo tres columnas, cuando llegue a 
      // la tercera, 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("minis_woman/"+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)+(100-target_mc._width)*0.5;
      target_mc._y = (separacion*filaF)+(100-target_mc._height)*0.5;
      // recolocamos el marco que rodea a la foto
      bajo_clip._x = target_mc._x-5;
      bajo_clip._y = target_mc._y-5;
      // dibujamos el marco
      with (bajo_clip) {
         beginFill(0xffffff);
         lineStyle(1, 0xEEEEEE, 100);
         lineTo(target_mc._width+10, 0);
         lineTo(target_mc._width+10, target_mc._height+10);
         lineTo(0, target_mc._height+10);
         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) {
   clearInterval(intervaloColor);
   // creo el clip donde irá la foto grande en una profundidad fija
   // para que se reemplace cada vez que pincho en una miniatura
   var grande:MovieClip = _root.createEmptyMovieClip("grande_mc", 2*IMG_array.length+11);
   // igual con el clip que contendrá el marco
   var bajo_grande:MovieClip = _root.createEmptyMovieClip("bajo_grande_mc", 2*IMG_array.length+10);
   // posición vertical fija
   grande._y = 100;
   // para cargar la foto grnade definimos otro objeto MovieClipLoader
   // y otro objeto detector de eventos
   var grande_mcl:MovieClipLoader = new MovieClipLoader();
   var grandeListener:Object = new Object();
   grande_mcl.addListener(grandeListener);
   // cargo la foto grande
   grande_mcl.loadClip("originales_woman/"+ruta, grande);
   grandeListener.onLoadStart = function(target_mc:MovieClip) {
      // aplico una transformación de color que deja el clip
      // tintado de blanco
      myColor = new Color(target_mc);
      myColorTransform = new Object();
      myColorTransform = {ra:100, rb:255, ga:100, gb:255, ba:100, bb:255, aa:100, ab:0};
      myColor.setTransform(myColorTransform);
   };
   grandeListener.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
   };
   grandeListener.onLoadInit = function(target_mc:MovieClip) {
      //trace("grandeListener.onLoadInit");
      // recolocamos la imagen (todavía está oculta) aki, dins del parentesi es on es modifica la x o posicio horitzontal!!!!!!!
      target_mc._x = 382+Math.round((550-target_mc._width)*0.5);
      // recolocamos el marco que rodea a la foto grande
      bajo_grande._x = target_mc._x-5;
      bajo_grande._y = target_mc._y-5;
      // dibujamos el marco
      with (bajo_grande) {
         beginFill(0xffffff);
         lineStyle(1, 0xEEEEEE, 100);
         lineTo(target_mc._width+10, 0);
         lineTo(target_mc._width+10, target_mc._height+10);
         lineTo(0, target_mc._height+10);
         lineTo(0, 0);
         endFill();
      }
      // con estas rutinas hacemos la transición de color desde el blanco
      var indiceColor:Number = 255;
      intervaloColor = setInterval(cambiarColor, 10);
      function cambiarColor() {
         myColorTransform = {ra:100, rb:indiceColor, ga:100, gb:indiceColor, ba:100, bb:indiceColor, aa:100, ab:0};
         myColor.setTransform(myColorTransform);
         indiceColor -= 2;
         if (indiceColor == -1) {
            clearInterval(intervaloColor);
         }
      }
   };
}
// 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);
}
// 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;

y este en los botones:
arriba:

Código ActionScript :

on (release) {
   // activo el botón página+
   pMas_btn.enabled = true;
   pMas_btn._alpha = 100;
   moverLienzo(50-(pagina_actual-2)*464);
   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;
   }
}

abajo:

Código ActionScript :

on (release) {
   // activo el botón página-
   pMenos_btn.enabled = true;
   pMenos_btn._alpha = 100;
   moverLienzo(50-(pagina_actual*464));//el num. 130 o el que va avans del segon parentesi ha de ser igual al de pag.+ i - i a la posició x de l'acció de l'sprite principal
   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;
   }
}


Un saludo y muchas gracias!!! :D