Portada | Monotemáticos | Secciones | Desarrolladores | Comunidad | Servicios | Servicios profesionales | RSS
Desde 0 | HTML | CSS | ASP | PHP | AJAX | Javascript | Promoción de webs | Rentabilidad de webs
Directorio | Manuales | Scripts | FAQs | Programas | Artículos Copyleft | Actualidad | La Cosecha | Colabora
Registrarse | Vuestras páginas | Foros del web | Lista de correo | Boletín de novedades
Generador METAs | Compras | Busca cursos
Alojamiento | Dominios.es | Micropagos SMS | Buscadores | Patentes, marcas | Creación web | Multimedia | Videos
Desarrollo Freelance | Buscar proyectos | Buscar profesionales | Solicitar desarrollo

Recepción de datos externos en Flash. La clase XML


El formateo de datos mediante XML, se ha convertido en una solución universal, por lo tanto, la clase XML nos permite obtener incorporar datos externos a nuestra película de un modo estandarizado.


07/8/07 - En este tutorial vamos a aprender a recibir una serie de datos en formato XML, comprobar posibles errores y trasladarlos a un array para manipularlos con mayor control.

COMO HACERLO.
En nuestro ejemplo vamos a recibir datos XML con información de varios modelos de coches, para ello vamos a cargar un documento de texto con formato xml llamado coches.xml. Para mostrar el funcionamiento de la clase XML, nos valdrá este archivo, sin embargo, en proyectos reales, lo corriente es que los datos xml los recibamos desde una base de datos empleando PHP, ASP o alguna otra tecnología de servidor.

Nuestro archivo coches.xml tiene este aspecto:

<?xml version="1.0" encoding="ISO-8859-1"?>
<coches>
<coche id="1" marca="Seat" modelo="Léon" vMax="215" />
<coche id="2" marca="Renault" modelo="Clio" vMax="188" />
<coche id="3" marca="Smart" modelo="ForTwo" vMax="135" />
<coche id="5" marca="Aston Martin" modelo="DB7" vMax="340" />
<coche id="4" marca="Ford" modelo="Fiesta" vMax="190" />
</coches>


Si nos fijamos en su estructura vemos que consta de una cabecera donde incluye la codificación del documento y de un nodo principal de primer nivel llamado . Todos los documentos XML sólo pueden que un único nodo principal. Dentro de tenemos los nodos con sus atributos, que son los que realmente contienen los datos de cada coche.

Para recibir estos datos correctamente en Flash debemos incluir las sentencias en el primer fotograma:

System.useCodepage = true;
XML.prototype.ignoreWhite = true;


Con la primera línea le indicamos a Flash el sistema de códigos que debe emplear para no tener problemas con las tildes y otros caracteres especiales. En la segunda línea le indicamos que no interprete los saltos de línea de todos los futuros documentos XML como nodos vacíos.

Creamos nuestro objeto XML y definimos la función que se ejecutará una vez la carga se haya completado.

datos_xml = new XML();
datos_xml.onLoad = cargarDatos;
function cargarDatos(exito) {
// si el xml se ha cargado bien...
if (exito) {
cochesCargados = this.firstChild.childNodes;
for (var k = 0; cochesCargados[k]; k++) {
pasar_a_array(cochesCargados[k]);
}
delete cochesCargados;
delete datos_xml;
verCoches();
} else {
// aquí las sentencias en caso de error
}
}


La función cargarDatos comprueba la carga y si se ha realizado correctamente, nos transforma los datos de los nodos en un array que podemos ordenar por el criterio que deseemos. La transformación de datos la lleva a cabo, concretamente, otra función, la función pasar_a_array. En esta función extraemos los atributos de cada coche y creamos un elemento nuevo con ellos en el array coches_array que es con el que nos vamos a quedar definitivamente.

function pasar_a_array(nodo) { var objetoCoche = new Object(); var atributos = nodo.attributes; objetoCoche.marca = atributos.marca; objetoCoche.modelo = atributos.modelo; objetoCoche.vMax = Number(atributos.vMax); objetoCoche.id = Number(atributos.id); coches_array.push(objetoCoche); }

Para mostrar la lista de coches en la caja de texto ejecutamos la función verCoches.

function pasar_a_array(nodo) {
var objetoCoche = new Object();
var atributos = nodo.attributes;
objetoCoche.marca = atributos.marca;
objetoCoche.modelo = atributos.modelo;
objetoCoche.vMax = Number(atributos.vMax);
objetoCoche.id = Number(atributos.id);
coches_array.push(objetoCoche);
}


Simplemente nos queda introducir el código de los botones para poder ordenar los datos.

En el botón "ordenar por marca":

on (release) {
coches_array.sortOn("marca");
verCoches();
}


En el botón "ordenar por velocidad":

on (release) {
coches_array.sortOn("vMax", Array.DESCENDING | Array.NUMERIC);
verCoches();
}


En el botón "ordenar por id ":

on (release) {
coches_array.sortOn("id", Array.NUMERIC);
verCoches();
}


Para ver el ejemplo en marcha pulsa este enlace.

Aquí teneis el archivo ejemplo_xml.zip del ejemplo con el código comentado.

 Seguir navegando a partir aquí:
+ 1 manual relacionado
+ 1 categoria relacionada

 Autoría, licencia y acciones sobre este artículo

Informe de Tutoriales-flash.com*
La web de los tutoriales flash en castellano
URL: http://www.tutoriales-flash.com/

Atención: Copyright. Este artículo no se puede reproducir sin la autorización expresa del autor.

* Para consultas técnicas utilizar la lista de correo.

Versión imprimible Versión imprimible del artículo
Enviar artículo por e-mail Enviar artículo por e-mail
Añadir un comentario al artículo Publicar un comentario del artículo

Manuales relacionados con este artículo
Dentro de Manual de Flash

Categorias relacionadas
A través de las categorías de nuestro directorio se pueden encontrar otro tipo de recursos relacionados con este artículo:
+ Entrar en Flash


 Comentarios de los visitantes
Aun no hemos recibido comentarios de este artículo.
Puedes ser el primero en enviar tu comentario.



Enlaces:
Maestrosdelweb
  Ir arriba

Manuales relacionados
+Manual de Flash
Categorías
+Flash

Lectura recomendada

Compra este libro en Agapea, la librería urgente a domicilio.

Tienda DesarrolloWeb

DesarrolloWeb.com | Copyright | Anunciese | Acerca de | Datos legales | Contacta | Por GuiarteMultimedia