El tema ha ¿evolucionado? bastante y me he cargado la primera escena y lo he dejado todo en la misma para así poder controlar la carga del xml y no tener que hacerla dos veces.
De esta manera, por lo que he indagado hasta ahora, para que la galería comience a funcionar una vez ya estén cargadas todas las imágenes, lo que tengo que hacer es cargarlas primero en un movieclip que creo que vacio y poner un listener para comprobarlo.
Más o menos (he omitido las funciones que afectan al posterior funcionamiento de la galería) este es el código y todo funciona correctamente a excepción del listener, pues en la función loadImage entra, pero luego con la función del listener.onLoadComplete (con onLoadError u otros tampoco) no hace ni caso:
Código :
var contenedor = this.createEmptyMovieClip("contenedor", this.getNextHighestDepth());
slides_xml = new XML();
slides_xml.onLoad = startSlideShow;
slides_xml.load("flash/slides.xml");
slides_xml.ignoreWhite = true;
var interruptor;
var temporizador_general;
var temporizador_general_activo;
var temporizador_cambio;
var current_image;
interruptor = 1;
function loadImage(n) {
listener.onLoadComplete=function(target_contenedor, httpStatus){
if (n+1 < total) {
loadImage(n + 1);
}else{
trace("se cargaron todas las imágenes en el contenedor");
//comienza a andar la galería
updateSlide(firstSlideNode);
temporizador_general = setInterval(avanzar,3500);
temporizador_general_activo = 1;
}
}*/
var total = totalSlides;
var mcLoader = new MovieClipLoader();
var listener = new Object();
var imageName = slides_xml.firstChild.childNodes[n].attributes.jpegURL;
mcLoader.addListener(listener);
mcLoader.loadClip(imageName, contenedor);
}
function startSlideShow(success) {
if (success == true) {
rootNode = slides_xml.firstChild;
totalSlides = rootNode.childNodes.length;
firstSlideNode = rootNode.firstChild;
lastSlideNode = rootNode.lastChild;
currentSlideNode = firstSlideNode;
currentIndex = 1;
//esperamos a que cargue el xml
loadImage(0,currentSlideNode);
}
}
Seguro que es alguna chorrada que se me está pasando porqué no tengo apenas idea en esto, pero me tiene loco ya. Cualquier ayuda será más que agradecida.