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
----------------------------------