Código :
<?xml version="1.0" ?> <exploracion carpeta="minis"> <archivo nombre="imagen01.jpg" size="35" /> <archivo nombre="imagen02.jpg" size="40" /> <archivo nombre="imagen03.jpg" size="35" /> <archivo nombre="imagen04.jpg" size="35" /> <archivo nombre="imagen05.jpg" size="33" /> </exploracion>
y en flash así:
Código :
stop();
System.useCodepage = true;
XML.prototype.ignoreWhite = true;
import mx.transitions.Tween;
var separacion:Number = 116;
//para que separe las imagenes que se van a poner, diagramaciòn//
var pagina_actual:Number = 1;//pagina de entrada, donde comienza a contar//
var num_paginas:Number;
var IMG_array:Array;//se crea la matriz, como son imagenes es img//
var miniaturasXML:XML = new XML();//Hay que declarar el archivo externo, crear un espacio virtual para el//
miniaturasXML.onLoad = mostrarMiniaturas;//se crea otra variable//
miniaturasXML.load("lista.xml");//ahora si carga elarchivo original//
function mostrarMiniaturas():Void { //dice que mostrar miniaturas es una funciòn//
var fila:Number = 0;//el proporciona automatico las filas y las columnas segun el espacio que le dimos, por eso se pone en cero//
var col:Number = 0;
IMG_array = this.firstChild.childNodes;//contiene la carpeta de las fotos, y childnodes es cada foto//
num_paginas = Math.ceil(IMG_array.length/5);//aca le dice cuantas fotos quiero poner por pagina//
var lienzo:MovieClip = _root.createEmptyMovieClip("lienzo_miniaturas", _root.getNextHighestDepth());//aca van a ir las fotos pequeñas//
lienzo.cacheAsBitmap = true;//hace un aprecarga para que luego llame al xml//
lienzo._x = 100;//uno lo ubica donde quiera//
lienzo._y = 200;
lienzo.setMask(mascara_mc);//se le pone mascara, es la misma masacara pero por codigo, para que no las muestre todas de una//
for (var k:Number = 0; IMG_array[k]; k++) {//recorre rapidamente las imagenes y las va mostrando//
if (col>50) {//si las columnas ya son 50, añada otra fila, esto se puede cambiar como uno quiera//
col = 0;
fila++;
}
crearMiniatura(col, fila, IMG_array[k].attributes.nombre);//esta diciendo de donde las saca, y que luego le de columna//
col++;
}
}
function crearMiniatura(columnaF:Number, filaF:Number, ruta:String) {//la F espara que no generre erores por que estas ya existen en el sistema//
var bajo_clip:MovieClip = lienzo_miniaturas.createEmptyMovieClip("bajo_"+filaF+"_"+columnaF, lienzo_miniaturas.getNextHighestDepth());
var clip:MovieClip = lienzo_miniaturas.createEmptyMovieClip("foto_"+filaF+"_"+columnaF, lienzo_miniaturas.getNextHighestDepth());//aqui importa las imag. del array a una fila y columna//
var mi_mcl:MovieClipLoader = new MovieClipLoader();//se crean mini movie clips dentro del grande para que vayan las foticos//
var miListener:Object = new Object();//sirve para que recorra la lista y se los aplique a todos//
mi_mcl.addListener(miListener);
clip.valor = "aaa";//es como nombre de instancia para que exista dentro del sistema//
mi_mcl.loadClip("minis/"+ruta, clip);//le da la ruta para que lo busque en la carpeta//
miListener.onLoadStart = function(target_mc:MovieClip) {
target_mc._alpha = 0;//para que la foto vaya apareciendo mientras carga//
};
miListener.onLoadProgress = function(target_mc:MovieClip, bytesLoaded:Number, bytesTotal:Number) {//proporcina la carga con el peso total para distribuir el alpha//
};
miListener.onLoadInit = function(target_mc:MovieClip) {
target_mc._x = (separacion*columnaF)+(100-target_mc._width)*0.5;//aqui las redimenciona deacuerdo al espacio que tienen las columnas//
target_mc._y = (separacion*filaF)+(100-target_mc._height)*0.5;
bajo_clip._x = target_mc._x-5;//5 pixeles de margen respecto a la imagen//
bajo_clip._y = target_mc._y-5;
with (bajo_clip) {
beginFill(0xcccccc);//comience la linea con este color//
lineStyle(1, 0xc92725, 100);//grosor de linea, y en este caso combina color//
lineTo(target_mc._width+10, 0);//los mas 10, son espacio como del marco de la linea//
lineTo(target_mc._width+10, target_mc._height+10);
lineTo(0, target_mc._height+10);
lineTo(0, 0);
endFill();
}
bajo_clip.onRelease = function() {//ya toca configurar la foto grande//
verFotoGrande(ruta);
};
var myTween:Tween = new Tween(target_mc, "_alpha", mx.transitions.easing.Regular.easeOut, 0, 100, 2, true);
};
}
function verFotoGrande(ruta:String) {
clearInterval(intervaloColor);//limpia el clippara que aparezca el otro//
var grande:MovieClip = _root.createEmptyMovieClip("grande_mc", 2*IMG_array.length+11);
var bajo_grande:MovieClip = _root.createEmptyMovieClip("bajo_grande_mc", 2*IMG_array.length+10);
grande._y = 100;
var grande_mcl:MovieClipLoader = new MovieClipLoader();
var grandeListener:Object = new Object();
grande_mcl.addListener(grandeListener);
grande_mcl.loadClip("originales/"+ruta, 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);//sobre una variable se aplica la otra//
};
grandeListener.onLoadProgress = function(target_mc:MovieClip, bytesLoaded:Number, bytesTotal:Number) {//lo mismo que las pequeñas, carga segun el peso//
};
grandeListener.onLoadInit = function(target_mc:MovieClip) {
target_mc._x = 210+Math.round((350-target_mc._width)*0.5);//se le da el tamaño del ancho, y el borde//
target_mc._y = 375+Math.round((263-target_mc._width)*0.5);
bajo_grande._x = target_mc._x-5;
bajo_grande._y = target_mc._y-5;
with (bajo_grande) {//lo mismo tambien para la margen//
beginFill(0xcccccc);
lineStyle(2, 0xc92725, 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();
}
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;//para cambiar la tonalidad cuando activa el botòn//Si alguien sabe como puedo hacerlo le argadezco mucho la ayudita. Chaos
