Presentación contínua Flash+XML
Hola compañeros tengo una duda dudosa, me encargaron una galería en flash y por el calibre de elemento a mostrar decidimos hacerlo con XML. Hasta aqui todo bien, salvo porque no tengo apenas idea de actionscript, pero Google siempre ayuda y encontré un buen recurso.
He conseguido hacerlo funcionar, pero cuando llega al último elemento del XML el Flash no vuelve al principio, ¿como puedo hacer que vuelva a comenzar la lista? vamos un loop de toda la vida.
Este es el código que tengo:
<code>
//FUNCION PARA COMPROBAR SI EL XML HA SIDO CARGADO//
function loadXML(loaded) {
if (loaded) {
//archivo xml cargado
xmlNode = this.firstChild;
image = [];
tit = [];
coment = [];
total = xmlNode.childNodes.length;
for (i=0; i<total; i++) {
image[i] = xmlNode.childNodes[i].childNodes[0].firstChild.nodeValue;
tit[i] = xmlNode.childNodes[i].childNodes[1].firstChild.nodeValue;
coment[i] = xmlNode.childNodes[i].childNodes[2].firstChild.nodeValue;
}
firstImage();
} else {
//archivo xml no cargado
content = "Fichero XML no cargado!";
}
}
//************************************************//
//PRINCIPAL//
xmlData = new XML(); //Nuevo objeto XML
xmlData.ignoreWhite = true; //Ignorar espacios en blanco
xmlData.onLoad = loadXML; //LLamamos a loadXML()
xmlData.load("images.xml"); //cargamos XML
//*************************************************//
//FUNCION PARA NAVEGAR CON TECLADO//
listen = new Object();
listen.onKeyDown = function() {
if (Key.getCode() == Key.LEFT) {
prevImage();
} else if (Key.getCode() == Key.RIGHT) {
nextImage();
}
};
//************************************************//
//NAVEGACION POR BOTONES//
Key.addListener(listen);
previous_btn.onRelease = function() {
prevImage();
};
next_btn.onRelease = function() {
nextImage();
};
//************************************************//
//NAVEGACION POR TIEMPO//
segundos = 10;
espera = function () {
nextImage();
};
a = setInterval(espera, segundos*1000);
//************************************************//
//PRECARGA DE IMAGENES//
p = 0;
this.onEnterFrame = function() {
filesize = picture.getBytesTotal();
loaded = picture.getBytesLoaded();
preloader._visible = true;
if (loaded != filesize) {
preloader.preload_bar._xscale = 100*loaded/filesize;
} else {
preloader._visible = false;
if (picture._alpha<100) {
picture._alpha += 2.5;
}
}
};
//**************************************************
//FUNCION AVANZAR IMAGEN//
function nextImage() {
if (p<(total-1)) {
p++;
if (loaded == filesize) {
picture._alpha = 0;
picture.loadMovie(image[p], 1);
tit_txt.text = tit[p];
desc_txt.text = coment[p];
picture_num();
}
}
}
//************************************************//
//FUNCION IMAGEN ANTERIOR//
function prevImage() {
if (p>0) {
p--;
picture._alpha = 0;
picture.loadMovie(image[p], 1);
tit_txt.text = tit[p];
desc_txt.text = coment[p]
picture_num();
}
}
//*************************************************//
//FUNCION QUE CARGA LA PRIMERA IMAGEN//
function firstImage() {
if (loaded == filesize) {
picture._alpha = 0;
picture.loadMovie(image[0], 1);
tit_txt.text = tit[0];
desc_txt.text = coment[0];
picture_num();
}
}
//************************************************//
//FUNCION QUE CONTROLA NUMERACION DE IMAGENES//
function picture_num() {
current_pos = p+1;
pos_txt.text = current_pos+" / "+total;
}
//*************************************************//
//FUNCION PARA DIRECCIONAR A IMAGEN//
descripcion = function()
{
getURL(image[p], "_blank");
}
//*************************************************//
ref_btn.onRelease = descripcion;
</code>
Y si no es mucho pedir (q lo es), el flash tiene un efecto de degradado alpha cuando entra la fotografía, pero al salir no y no se como meterlo en el código.
Bueno no os lio mas, mil gracias de antemano si podeis solucionarme la duda.
Saludos
ventdaval
wenas,
prueba cambiando esta funcion:
<code>function nextImage() {
p++;
if(p>=total-1) p=0;
if (loaded == filesize) {
picture._alpha = 0;
picture.loadMovie(image[p], 1);
tit_txt.text = tit[p];
desc_txt.text = coment[p];
picture_num();
}
} </code>
Saludos...
flavaquess
Perfecto, mil gracias :D