Os dejo el codigo, esta bastante ordenado para que podais comprenderlo a la perfección.
Código :
import mx.transitions.*;
import mx.transitions.easing.*;
System.useCodepage = true;
///////////////////////////
//Código para trabajar a pantalla completa solo afectando a un clip, show.btn
/////////////////////////////
Stage.scaleMode = 'noScale';
Stage.align = 'TL';
//calcular tamaño
stageResize = function ():Void {
//ajustar marcara de clips
show.btn._height = Stage.height;
show.btn._width = Stage.width;
};
stageListener = new Object();
stageListener.onResize = stageResize;
Stage.addListener(stageListener);
///////////////////////////
///////////////////////////
//DECLARACIÓN DE VARIABLES
//////////////////////////
var listener:Object = new Object();
var xml:XML = new XML();
xml.ignoreWhite = true;
xml.onLoad = alCargar;
xml.load("http://127.0.0.1/rem/proyectos.php");
var numFotos:Number;
var cadaFoto:Array;
var i:Number;
var dirX:Number = 0;
var dirY:Number = 0;
var col:Number = 15;
var mcs:MovieClip;
var thumb:MovieClip;
var img:MovieClip;
var thumbloader:MovieClipLoader = new MovieClipLoader();
var imgloader:MovieClipLoader = new MovieClipLoader();
foto_mc._visible = false;
thumbloader.addListener(this);
/////////////////////////////
/////////////////////////
//Multi PreLoader
////////////////////////
function onLoadStart(clip:MovieClip)
{
clip._visible = false;
clip.stop();
}
function onLoadProgress(clip:MovieClip, bytesLoaded:Number, bytesTotal:Number)
{
porcentaje = Math.round(bytesLoaded / bytesTotal * 100);
porcentajeTotal = Math.round(porcentaje / numFotos + 100 / numFotos * cargando);
preload.gotoAndStop(porcentajeTotal);
preload.cargando.text = "Loading Thumbails: " + cargando;
}
function onLoadInit(clip:MovieClip)
{
cargando++;
trace(cargando)
cargarPrevias();
}
cargarPrevias(200, 150);
/////////////////////////
////////////////////////////
//Funciones para cargar las imagenes de un xml
////////////////////////////
function alCargar(){
numFotos = xml.firstChild.childNodes.length;
trace(numFotos);
cadaFoto = new Array(numFotos);
//altoFoto = new Array(numFotos);
cargarPrevias();
}
function cargarPrevias(queX:Number, queY:Number){
if (!cargando) {
cargando = 0;
this.attachMovie("preload", "preload", this.getNextHighestDepth());
preload._x = queX;
preload._y = queY;
}
if (cargando < numFotos) {
Duplicar();
cadaFoto[cargando] = xml.firstChild.childNodes[cargando].attributes.img_xml;
thumb = mcs.createEmptyMovieClip("n", this.getNextHighestDepth());
thumbloader.loadClip("thumb/" + cadaFoto[cargando], thumb);
trace(cadaFoto[cargando]);
}
else {
trace("listo");
for (i = 0; i < numFotos; i++) {
clipTween= show.foto["mc"+i];
clipTween._visible = true;
clipTween.play();
new Tween(clipTween,"_alpha", Strong.easeOut, 100 , 0, 3, true);
trace(clipTwee)
}
removeMovieClip(preload);
}
}
function Duplicar(){
mcs = show.foto.thumb_mc.duplicateMovieClip("mc"+ cargando, cargando);
trace(mcs);
mcs._x = 100*dirX;
mcs._y = 100*dirY;
mcs._alpha=0;
dirX++;
if(dirX == col){
dirX = 0;
dirY++;
}
}
Como podeis ver, las funciones alCargar y cargarPrevias son las que generar el array de todas las rutas y el Duplicar, pues duplica los clips de show.foto.thumb_mc con instancia mc+cargando
En el Multi Preloader, la funcion onLoadInit es la que crea el bucle aumentando cada vez la variable cargando.
Tengo puesto cuatro traces, el primero es el de la variable cargando en la funcion onLoadInit, el segundo es el de las imagenes en la funcion cargarPrevias, que ademas, dentro de esta, se ejecuta la funcion Duplicar, donde tambien hay un trace para ver los clips que va duplicando (show.foto.mc1, show.foto.mc2, show.foto.mc3..., hasta 255), los ultimas trace se ejecutan cuando ha terminado la carga de archivos en la función cargarPrevias, son el de "listo" y el que deberia ver los clips duplicados a través de la variable clipTween, pues este último trace de la variable clipTween me sale como undefined 255 veces, aqui es donde no hace visible los clips y no se ve nada.
Espero me puedan ayudar! muchas gracias
