Taller Webmaster

Tutoriales para Webmasters

Bienvenido a Taller Webmaster, donde encontrarás la mejor información sobre tutoriales y recursos para webmasters!

Ingreso de Usuario

Recuperar contraseña

Registro de Usuario

Publicidad

Prácticas y Ejemplos de XML, con Flash, PHP y MySQL

eXtensible Markup Language, Intermabio de datos entre Aplicaciones

 

Tutorial por Jorge Oyhenard (elQuique)

Segunda parte de este tutorial que pretende ser una introducción básica al lenguaje XML, y al uso para integrar aplicaciones como Flash, PHP y MySQL.

Luego de nuestra Introducción al XML, veremos en esta oportunidad la forma en que Adobe Flash, lee estos archivos y en que podemos utilizarlo.

Lo primero es entender lo básico para poder realizar aplicaciones Flash que utilicen, XML, por tanto para los más avanzados, pido disculpas si somos demasiado obvios.

En esta primera prueba vamos a crear un archivo datos.xml en cualquier editor de texto, también pueden hacerlo con:

Inicio, Ejecutar   Notepad  datos.xml  o indicando la carpeta donde debe guardarse así, Notepad c:\pruebas\datos.xml

El contenido para este primer ejemplo debe ser:

<usuarios>
            <usuario>Jacinto</usuario>
            <usuario>Ana</usuario>
</usuarios>

Luego vamos a abrir Flash y vamos a crear un documento nuevo (no importa las medidas ya que será solo código), en la ventana de acciones vamos a escribir el siguiente código:

misdatos = new XML();
misdatos.load("datos.xml");
misdatos.onLoad = function () {

    trace(misdatos.firstChild);
}

Y guardamos en c:\pruebas\ejemplo1.fla

En la primer línea,

misdatos = new XML();

en esta línea, estamos declarando una variable llamada “misdatos”, que será la que permita manejar nuestro objeto XML. El objeto XML es la representación de nuestro archivo de datos, en nuestra pequeña aplicación de ejemplo hecha en ActionScript de Flash.

En la segunda línea,

misdatos.load("datos.xml");

en esta línea, realizamos la lectura de los datos por medio de la orden load, a la cual le indicamos el nombre del archivo a leer. Con eso logramos que se lea la información desde nuestro archivo a la memoria, para poder trabajar con ella.

Para realizar cualquier función con la información leída, la manera mas común es realizar justamente una función que se ejecute al leer = onLoad (por su traducción al ingles, al Leer = on Load).

La función se declara así,

misdatos.onLoad = function () {
trace(misdatos.firstChild);
}

La línea misdatos.onLoad = function () { es igual siempre, al igual que la llave } de finalización. Lo que cambia siempre es el contenido de la función, en este caso:

trace(misdatos.firstChild);

que lo que hace es mostrar por medio de la orden trace, el contenido de “misdatos” ya que la orden firstChild simboliza el total de los datos.

Podemos probar esto dando CTRL Enter o en el menú, Control y Test Movie. Nota: si probamos muchas veces y la ventana Output se llena de datos o nos confunde, con botón derecho, Clear podemos limpiar la ventana Output.

Ejemplos de Uso XML

Como vemos en la imagen, se muestra toda la información del archivo XML, vamos a suponer que ahora solo queremos ver lo que corresponde a los usuarios, o sea Jacinto y Ana, para esto cambiaremos la función como sigue:

misdatos.onLoad = function () {
trace(misdatos.firstChild.childNotes);
}

Podemos probar nuevamente dando CTRL Enter o en el menú, Control y Test Movie.

Ejemplos de Uso XML

Esto es así, porque childNodes muestra solo los elementos Hijos de nuestro XML.

La estructura XML, se da de manera Jerárquica tenemos como Padre a todo el archivo XML y cada elemento interno serán sus Hijos, en este caso cada usuario.

Si ahora queremos ver solo el Primer Usuario (o sea Jacinto), podemos realizar el siguiente código:

misdatos.onLoad = function () {
trace(misdatos.firstChild.childNodes[0];
}

Tenemos que tener, en cuenta que entre los elementos de un XML, puede haber espacios en blanco que no deben ser tomados en cuenta. Es por eso que quizás no veas lo que debes ver, para asegurarnos vamos a utilizar ignoreWhite, de esta forma:

misdatos.ignoreWhite = true;
misdatos.onLoad = function () {
trace(misdatos.firstChild.childNodes[0];
}

Simplemente lo agregamos antes de la función y queda listo. Bien..., si con [0] aparece el Primer Elemento, nótese que comienza en 0 y siguen en 1, 2, 3 etc, o sea que numera del cero en adelante. Podemos ver los demás elementos usando ese numero hasta los N elementos que tengamos en nuestro archivo.

Por tanto si utilizamos así:

trace(misdatos.firstChild.childNodes[1]);

nos mostraría a Ana.

El código completo, en imágenes:

Ejemplos de Uso XML

En la próxima entrega, veremos un ejemplo más práctico utilizando archivos más complejos de datos y una pantalla flash que tome estos datos.

Ver la Parte 1 - Introducción al XML

Comentarios de Prácticas y Ejemplos de XML, con Flash, PHP y MySQL

↑ Tutorial

  • cesario47

    cesario47

    2007-03-13 07:46

    muchas gracias, espero pronto la proxima entrega, muchas felicidades por su pagina esta excelente
  • vini138

    vini138

    2007-04-04 13:31

    Cuando estará el resto del tutorial?
    Cada cuanto hacen publicaciones nuevas sobre este tema?
  • ravalos7

    ravalos7

    2007-07-05 09:01

    Al igual que vini138 prgunto por el resto del tutorial, que tal como va es muy bueno, pero nos quedamos en el aire..¡¡por favor!!!
  • jam

    jam

    2007-10-05 12:27

    Bravo, Bravo, Chapeau y Chapeau.
    La siguiente entrega por favor.
    Dense por Saludados.
  • jcaspev

    jcaspev

    2007-10-23 01:19

    Hola, buenisimo pero no se como continuar, la siguiente entrega por favor!!!

    Gracias por esta excelente pagina... Saludos!!!
  • juanalex

    juanalex

    2007-12-07 12:32

    tengo un problema a la ora de compilar tengo en ActionScript lo siguiente

    linea1 var opcionesXML:XML = new XML();
    linea2 opcionesXML.ignoreWhite = true;
    linea3 opcionesXML.onLoad = function (sucess:Boolean){}
    linea4 if (VAR Opciones: Array=this.firstChild.childNodes);
    linea5 for (i=0; i linea6 _root.attachMovie("mcBoton", "boton"+i,_root.getNextHighestDepth());
    linea7 _root["boton"+i]._x = 50;
    linea8 _root["boton"+i]._y = 30 + (i * 50);
    linea9 _root["boton"+i].texto = opciones[i].childNodes[0].firstChild;
    linea10 _root["boton"+i].linkurl = opciones[i].childNodes[1].firstChild;
    linea11 _root["boton"+i].onRelease = function (){getURL(this.linkurl, "_blank");
    linea12 else misdatos.ignoreWhite = true;
    linea13 misdatos.onLoad = function () {trace(misdatos.firstChild.childNodes[0];};


    y al compilarlo me da como resultado lo siguiente y no se cual es la correcion



    **Error** Escena=Escena 1, capa=Capa 1, fotograma=1:Línea 4: Se espera ')'
    if (VAR Opciones: Array = this.firstChild.childNodes);

    Total de errores de ActionScript: 1 Errores comunicados: 1


    si me hace falta algo o simplemente me equivoque me lo pueden explicar por fa