FLASH Y XML (VII): Generar una Galeria de Imagenes. Segunda Parte

0 - , , - 11/01/2005 00:00:00

Continuamos el tutorial desde el punto en el que lo dejamos ayer. Nos habíamos asegurado de que accedíamos correctamente a la información almacenada en el xml mediante dos trace():

trace(imagen)
trace(descripcion)
Estos trace(), una vez han cumplido su propósito los vamos a sustituir por la llamada a una función que nos cargue la primera imagen de nuestra galeria:

CargarPrimeraImagen();

Con lo que el script nos quedaría

function cargarXML(cargado) {
if (cargado) {
xmlNodo = this.firstChild;
imagen = [];
descripcion = [];
total = xmlNodo.childNodes.length;
for (i=0; i<total; i++) {
	imagen[i] = xmlNodo.childNodes[i].childNodes[0].firstChild.nodeValue;
	descripcion[i] = xmlNodo.childNodes[i].childNodes[1].firstChild.nodeValue;
}
CargarPrimeraImagen();
} else {
trace("algo ha fallado");
}
}
xmlAlbum = new XML();
xmlAlbum.ignoreWhite = true;
xmlAlbum.onLoad = cargarXML;
xmlAlbum.load("imagenes.xml");

Ahora deberemos definir la función CargarPrimeraImagen();, para ello antes definimos una variable que nos servirá para irnos moviendo por los arrays:

posarray=0
//generamos la funcion
function CargarPrimeraImagen() {
//cargamos en el clip de película "contenedor_mc"
//con el primer valor del array imagen
contenedor_mc.loadMovie(imagen[0]);
//Ponemos como texto de "titulo_txt"
//el primer valor del array descripcion
titulo_txt.text = descripcion[0];
//Obtenemos la imagen que nos encontramos respecto al total
//Con lo que siempre deberemos sumar 1 a la posicion de la array.
posicion_txt.text = posarray+1+" / "+total;
}  

A continuación necesitaremos crear sendas funciones para ir a la siguiente imagen o a la anterior.

///SIGUIENTE IMAGEN////////
function  SiguienteImagen()  {
//Si al menos queda una imagen para llegar al total
if (posarray<(total-1)) {
//Ponemos el alfa del contenedor a cero
contenedor_mc._alpha = 0;
//Sumo 1 a posarray
posarray++;
//Cargamos la imagen
contenedor_mc.loadMovie(imagen[posarray]);
//Cargamos el título
titulo_txt.text = descripcion[posarray];
//Obtenemos la posicion
posicion_txt.text = posarray+1+" / "+total;
}
}
////ANTERIOR IMAGEN//////
function  AnteriorImagen()  {
//Si no es la primera imagen
if (posarray>0) {
//Ponemos el alfa del contenedor a cero
contenedor_mc._alpha = 0;
//Resto 1 a posarray
posarray--;
//Cargamos la imagen
contenedor_mc.loadMovie(imagen[posarray]);
//Cargamos el título
titulo_txt.text = descripcion[posarray];
//Obtenemos la posicion
posicion_txt.text = posarray+1+" / "+total;
}
}

Ahora únicamente nos queda asignar las acciones a los botones que habíamos creado

////ACCIONES DE LOS BOTONES/////////
this.adelante_btn.onRelease = function(){
	SiguienteImagen();
}
this.atras_btn.onRelease = function(){
	AnteriorImagen();
}

Dejo para mañana la inclusión de una precarga en las imágenes.

Descargar ejemplo » »

Deja tu comentario

  • El comentario debe estar relacionado con el contenido de la entrada.
  • Comentarios ofensivos, con spam o con lenguaje inapropiado serán eliminados.

captcha