Buenas noches ASfanaticos

Se que algo de esto hay escrito en la lista, lo he leido.. pero la verdad es que no lo entiendo. Os espongo mi problema

Estoy montando un sitio web con varios swf cargados con el loadMovieNum, todas los swf tienen su precargador típico y este funciona.

Ahora bien, en unas partes de la web existe una galeria de espectaculos con una tira de imágenes con los correspondientes carteles de cada uno de estos. Cada espectáculo se compone de sinopsi, cartel, fotos, titulo, etc, que lo cargo todo a traves de un xml que tiene esta estructura

</espectaculo>
<espectaculo id="2" nombre="" nom="" castellano="" valenciano="" cartel="" cartell="">
       <fotos>
           <foto></foto>
       </fotos>
   </espectaculo>
el xml se parsea bien, y dinámicamente se me crea la galeria según cuantos espectaculos existan en el xml. mi código crea primero los clips para cada uno de los espectaculos, carga las imagenes y asocia a cada uno de los elementos de la tira de imágenes todo los datos que necesita del xml.

Pero el problema, es que desde que se crean los clips(boton) para cada uno de los elementos del xml, se quedan en blanco los movieclips y no consigo crear un cargador cutre para xml para que no tener la tira de imágenes en blanco hasta que se terminan de cargar todas las imágenes.

Por favor, hechadme una mano (y que no sea al cuello, jejeje) que llevo muchos dias pasando sueño para intentar solucionar esto y no lo consigo.
Os pongo tb el código que utilizo para cargar el xml y la galería.

stop();
// Initialize useful variables and picture array
cellWidth = tira_mc.reel_mc.cell_mc._width;
center = tira_mc._width / 2;
pics = new Array ();
//esto es lo que hace que la tira se mueva hacia un lado u otro
onEnterFrame = function () {
   if (_xmouse > 330 && _ymouse < 265) {
       reelSpeed = ((_xmouse - 330) - center) / 10;
       tira_mc.reel_mc._x += reelSpeed;
       // Apply limits to reel position
       leftStop = center - tira_mc.reel_mc._width + cellWidth / 2;
       rightStop = center - cellWidth / 2;
       if (tira_mc.reel_mc._x < leftStop) {
           tira_mc.reel_mc._x = leftStop;
       } else if (tira_mc.reel_mc._x > rightStop) {
           tira_mc.reel_mc._x = rightStop;
       }
   }
};
// esto es el constructor del objeto espectaculo
espectaculo = function (id, nombre, nom, castellano, valenciano, cartel, cartell, fotos) {
   this.id = id;
   this.nombre = nombre;
   this.nom = nom;
   this.castellano = castellano;
   this.valenciano = valenciano;
   this.cartel = cartel;
   this.cartell = cartell;
   this.fotos = fotos;
};
//aqui defino para cada celdita lo que tiene k cargar en ella
NewCell = function (num, details) {
   // Create a new cell
   originalClip = tira_mc.reel_mc.cell_mc;
   newClip = originalClip.duplicateMovieClip ("cell" + num, num);
   // Set cell position and text fields
   newClip._x = num * 120;
// Coloco el contenido de cada uno de los espectaculos en su celdita del scroll content = newClip.placeholder_mc;
   //PONGO EL CARTEL CORRESPONDIENTE
   //controlo si hay cartel o no
if (details.cartel != undefined && details.cartel != null && details.cartel != "") {
       content.loadMovie (details.cartel);
} else if (details.cartell != undefined && details.cartell != null && details.cartell != "") {
       content.loadMovie (details.cartell);
   } else {
       //si no hay pongo uno genérico
       content.loadMovie ("./images/logo_.gif");
   }
   //DEFINO LAS FUNCIONES DE BOTON DE CADA celdita del scroll
   newClip.onRelease = function () {
       //compruebo si hay cartel
if (details.cartel != undefined && details.cartel != null && details.cartel != "") {
           foto.clip_foto.loadMovie (details.cartel);
} else if (details.cartell != undefined && details.cartell != null && details.cartell != "") {
           foto.clip_foto.loadMovie (details.cartell);
       } else {
           //si no hay pongo uno genérico
           foto.clip_foto.loadMovie ("./images/logo_.gif");
       }
       //compruebo si hay texto
if (details.castellano != undefined && details.castellano != null && details.castellano != "") {
           texto_espectaculo.sinopsi.text = details.castellano;
} else if (details.valenciano != undefined && details.valenciano != null && details.valenciano != "") {
           texto_espectaculo.sinopsi.text = details.valenciano;
       } else {
           //si no hay pongo uno genérico
texto_espectaculo.sinopsi.text = "Contacte con nosotros para obtener más información";
       }
       for (m = 0; m < 12; m++) {
           this._parent._parent._parent["cuad" + m].gotoAndStop (3);
           this._parent._parent._parent["cuad" + m].enable = false;
       }
       for (k = 0; k < details.fotos.length; k++) {
           if (details.fotos[k] != undefined) {
               this._parent._parent._parent["cuad" + k].gotoAndStop (2);
               this._parent._parent._parent["cuad" + k].enable = true;
this._parent._parent._parent["cuad" + k].foto = details.fotos[k]; this._parent._parent._parent["cuad" + k].onPress = function () {
                   this.gotoAndStop (2);
                   foto.clip_foto.loadMovie (this.foto);
               };
this._parent._parent._parent["cuad" + k].onRelease = function () {
                   this.gotoAndStop (1);
               };
           } else {
           }
       }
   };
   if (num == 0) {
       //compruebo si hay cartel
if (details.cartel != undefined && details.cartel != null && details.cartel != "") {
           foto.clip_foto.loadMovie (details.cartel);
} else if (details.cartell != undefined && details.cartell != null && details.cartell != "") {
           foto.clip_foto.loadMovie (details.cartell);
       } else {
           //si no hay pongo uno genérico
           foto.clip_foto.loadMovie ("./images/logo_.gif");
       }
       //compruebo si hay texto
if (details.castellano != undefined && details.castellano != null && details.castellano != "") {
           texto_espectaculo.sinopsi.text = details.castellano;
} else if (details.valenciano != undefined && details.valenciano != null && details.valenciano != "") {
           texto_espectaculo.sinopsi.text = details.valenciano;
       } else {
           //si no hay pongo uno genérico
texto_espectaculo.sinopsi.text = "Contacte con nosotros para obtener más información";
       }
       for (m = 0; m < 12; m++) {
           this["cuad" + m].gotoAndStop (3);
           this["cuad" + m].enable = false;
       }
       for (k = 0; k < details.fotos.length; k++) {
           if (details.fotos[k] != undefined) {
               this["cuad" + k].gotoAndStop (2);
               this["cuad" + k].enable = true;
               this["cuad" + k].foto = details.fotos[k];
               this["cuad" + k].onPress = function () {
                   this.gotoAndStop (2);
                   foto.clip_foto.loadMovie (this.foto);
               };
               this["cuad" + k].onRelease = function () {
                   this.gotoAndStop (1);
               };
           } else {
           }
       }
   }
};
// Set up picture objects
pics = new Array ();
galeria = new XML ();
galeria.load ("./xml/zarzuela.xml");
galeria.ignoreWhite = true;
galeria.onLoad = function (exito) {
   if (exito) {
       //miro cuantos espectaculos hay en el xml
       cantidadEspectaculos = this.firstChild.childNodes.length;
       //para cada espectaculo hago lo siguiente
       for (i = 0; i < cantidadEspectaculos; i++) {
//controlo cuantas fotos tiene cada espectaculo, aparte de la del cartel cantidadFotos = this.firstChild.childNodes[i].childNodes[0].childNodes.length;
           vectorFotos = new Array ();
           //las pongo en un vector para despues trabajar con ellas
           for (j = 0; j < cantidadFotos; j++) {
vectorFotos.push (this.firstChild.childNodes[i].childNodes[0].childNodes[j].firstChild.nodeValue);
           }
//Guardo los datos en el otro vectos llamado pics que contiene toda la información de cada espectaculo. pics[i] = new espectaculo (this.firstChild.childNodes[i].attributes.id, this.firstChild.childNodes[i].attributes.nombre, this.firstChild.childNodes[i].attributes.nom, this.firstChild.childNodes[i].attributes.castellano, this.firstChild.childNodes[i].attributes.valenciano, this.firstChild.childNodes[i].attributes.cartel, this.firstChild.childNodes[i].attributes.cartell, vectorFotos);
           NewCell (i, pics[i]);
       }
   }
};

bueno, pues gracias por todo y seguid asi que ayudais un monton

Gracias.

Moisés

----------------------------------
Lista ASNativos:[email protected]
http://www.5dms.com/listas
----------------------------------

Responder a