FLASH Y XML (VI): Generar una Galeria de Imagenes. Primera Parte

0 - - 10/01/2005 00:00:00
Vamos a abordar la primera parte de un tutorial para crear una galería de imágenes, utilizando un documento xml, que alimente a la película de Flash. Es conveniente haber leído los anteriores tutoriales sobre XML publicados en este blog:

FLASH Y XML (I): INTRODUCCIÓN AL XML
FLASH Y XML (II): ELEMENTOS BÁSICOS DEL XML
FLASH Y XML (III): PRIMERA CARGA DE UN DOCUMENTO XML EN FLASH
FLASH Y XML (IV): EXTRAER DATOS DE UN DOCUMENTO XML
FLASH Y XML (V): GENERAR UN MENÚ A PARTIR DE UN XML

Lo primero que debemos hacer es generar un documento xml que guardamos con el nombre "imagenes.xml"

<?xml version="1.0" encoding="utf-8" standalone="yes"?>
<album>
<imagen>
<origen>foto001.jpg</origen>
<titulo>Esta es la foto 1</titulo>
</imagen>
<imagen>
<origen>foto002.jpg</origen>
<titulo>Esta es la foto 2</titulo>
</imagen>
<imagen>
<origen>foto003.jpg</origen>
<titulo>Esta es la foto 3</titulo>
</imagen>
</album>

Para añadir más imágenes al album tan sólo tendríamos que añadir nodos al documento xml . Así podríamos personalizar el xml a las necesidades de nuestro album.

El siguiente paso es crear los elementos necesarios en el escenario:
1.- En este ejemplo, he creado un documento de Flash con unas dimensiones de 250px x 350px.
2.- Creamos un clip de película vacío con el nombre de instancia "contenedor_mc" que situamos en la coordenada 0,0 del documento.


3- Creamos dos botones, uno para avanzar y otro retroceder con los nombres "adelante_btn" y "atras_btn" y los situamos en la parte inferior del documento.


4.- Creamos una caja de texto dinámico con el nombre de "titulo_txt" y la colocamos justo arriba de los botones.


5.- Creamos una última caja de texto dinámico que utilizaremos para saber en que posición del album nos encontramos. La llamamos "posicion_txt" y la colocamos a la derecha de la del título.

6.- Ahora procederemos al Actionscript. Ya que hay bastante código, en esta primera parte del tutorial nos aseguraremos de cargar todos los datos del xml. Sobre el primer fotograma insertamos el siguiente código:

//Creamos una función para cargar el XML
function cargarXML(cargado) {
//Si el xml se ha cargado correctamente
if (cargado) {
//Creo una variable xmlNodo igual a this.firstChild,
//para reutilizarla frecuentemente y así facilitar el acceso al xml.
xmlNodo = this.firstChild;
//En las dos siguientes líneas declaro las variables
// imagen y descripcion como arrays para ir almacenando en ellas los accesos
//a las imagenes y los titulos de las mimas
imagen = [];
descripcion = [];
//Establezco el valor de total como el numero de "childNodes"
//que nuestro XML contiene.
//En nuestro caso el xml contiene 3 nodos hijo con lo cual adquirira ese valor.
total = xmlNodo.childNodes.length;
//Utilizo un bucle para ir llenando las arrays imagen y descripcion que he
//creado anteriormente
for (i=0; i<total; i++) {
imagen[i] = xmlNodo.childNodes[i].childNodes[0].firstChild.nodeValue;
descripcion[i] = xmlNodo.childNodes[i].childNodes[1].firstChild.nodeValue;
}
//Hago un trace de las array imagen y descripcion. //Lo cuál nos devolverá todas //las imagenes y titulos de nuestro documento xml
trace(imagen)
trace(descripcion)
} else {
trace("algo ha fallado");
}
}
//Creamos un nuevo objeto XML
xmlAlbum = new XML();
//Ignoramos los espacios en blanco del xml
xmlAlbum.ignoreWhite = true;
//En la carga llamamos a la funcion cargarXML para asegurarnos que la carga
//se efectua con exito
xmlAlbum.onLoad = cargarXML;
//cargamos el documento XML
xmlAlbum.load("imagenes.xml");

En este punto y probando la película (CTRL+INTRO) deberán aparecer todas las imagenes y los títulos que hayamos puesto en nuestro documento XML mediante los "trace" insertados en el Actionscript.

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