Hola soy nueva en as3 estoy creando una galería de imágenes, ya conseguí que me mostrara las imágenes y que al hacer clic en una aparezca grande, ahora lo que necesito es que en la miniatura aparezca el nombre de la imagen, y cuando aparezca la grande muestre las descripciones de la foto.
Lo que he logrado es que me aparezca solo el ultimo nombre que aparece en el xml.
El código:
stop();
System.useCodepage = true;
XML.prototype.ignoreWhite = true;
import mx.transitions.Tween;
var separacion:Number = 116;
var pagina_actual:Number = 1;
var num_paginas:Number;
var IMG_array:Array;
var miniaturasXML:XML = new XML();
miniaturasXML.onLoad = mostrarMiniaturas;
miniaturasXML.load("productos.xml");
ML
function mostrarMiniaturas():Void {
var col:Number = 0;
IMG_array = this.firstChild.childNodes;
num_paginas = Math.ceil(IMG_array.length/4);
// creo el clip donde meteremos todas las miniaturas
var lienzo:MovieClip = _root.createEmptyMovieClip("lienzo_miniaturas", _root.getNextHighestDepth());
lienzo.cacheAsBitmap = true;
lienzo._x = 262;
lienzo._y = 175;
lienzo.setMask(mascara_mc);
for (var k:Number = 0; IMG_array[k]; k++) {
crearMiniatura(col, fila, k);
nombre_img.text=IMG_array[k].attributes.nombre;
col++;
}
}
function crearMiniatura(columnaF:Number, filaF:Number, k:Number) {
var clip:MovieClip = lienzo_miniaturas.createEmptyMovieClip("foto_"+fil aF+"_"+columnaF, lienzo_miniaturas.getNextHighestDepth());
var mi_mcl:MovieClipLoader = new MovieClipLoader();
var nombre:TextField = new TextField();
var miListener:Object = new Object();
mi_mcl.addListener(miListener);
clip.valor = "aaa";
mi_mcl.loadClip("mini/"+IMG_array[k].attributes.imag, clip);
miListener.onLoadStart = function(target_mc:MovieClip) {
target_mc._alpha = 0;
};
miListener.onLoadProgress = function(target_mc:MovieClip, bytesLoaded:Number, bytesTotal:Number) {
};
miListener.onLoadInit = function(target_mc:MovieClip) {
target_mc._x = (separacion*columnaF)+(100-target_mc._width)*0.5;
target_mc._y = (separacion*filaF)+(100-target_mc._height)*0.5;
clip.onRelease = function() {
verFotoGrande(k);
};
var myTween:Tween = new Tween(target_mc, "_alpha", mx.transitions.easing.Regular.easeOut, 0, 175, 2, true);
};
}
function verFotoGrande(k:Number) {
clearInterval(intervaloColor);
var grande:MovieClip = _root.createEmptyMovieClip("grande_mc",2*IMG_array .length+11);
grande._y = 350;
var grande_mcl:MovieClipLoader = new MovieClipLoader();
var grandeListener:Object = new Object();
grande_mcl.addListener(grandeListener);
grande_mcl.loadClip("originales/"+IMG_array[k].attributes.imag, grande);
grandeListener.onLoadStart = function(target_mc:MovieClip) {
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) {
};
grandeListener.onLoadInit = function(target_mc:MovieClip) {
target_mc._x = 173+Math.round((315-target_mc._width)*0.5);
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);
}
}
};
}
function moverLienzo(posX:Number):Void {
var myTween:Tween = new Tween(lienzo_miniaturas, "_x", mx.transitions.easing.Regular.easeOut, lienzo_miniaturas._x, posX, 1, true);
}
pMenos_btn.enabled = false;
pMenos_btn._alpha = 30;