8 comentarios » Publicado el: 10 de Marzo de 2008 a las 11:58:04, en la categoría: Multimedia.
AL momento de hacer aplicaciones interactivas con Flash, es posible utilizar una gran cantidad de métodos pero, sin duda, el más eficiente es el de leer la información a través de un archivo XML.
Un archivo XML, es un documento muy simple y escrito en un formato estandarizado (muy similar al HTML). Para que se entienda más fácil, acá va un ejemplo de un XML simple:
<?xml version='1.0' encoding='iso-8859-1'?> <datos> <banner> <swf>img/google.jpg</swf> <url>http://www.google.cl</url> <metodo>_blank</metodo> </banner> <banner> <swf>img/peivem.jpg</swf> <url>http://www.peivem.com</url> <metodo>_self</metodo> </banner> </datos>
Por su parte, ActionScript (como muchos otros lenguajes de programación - prácticamente todos) posee comandos para importar archivos XML y leer su contenido.
La manera en que los lee no es "línea por línea", como es el caso de los archivos de texto, sino que "nodo por nodo", es decir por "padres e hijos".
Para que se entienda como "piensa" flash, podríamos decir que (en el ejemplo anterior), el firstChild corresponde a la etiqueta <datos>. firstChild.childNodes[0] correspondería a la primera etiqueta <banner>, y el firstChild.childNodes[1], correspondería a la segunda etiqueta <banner>. Así mismo, se sigue hacia adentro, agregando más .childNodes[x].
Por lo tanto, la manera (copiar/pegar) de leer los datos de un xml en flash es la siguiente:
xml="xml/datos.xml";
var my_xml:XML = new XML ();
my_xml.ignoreWhite = true;
my_xml.load (xml);
my_xml.onLoad = parse;
function parse (succes):Void {
if (succes) { printScreen (this); }
else { trace ("Error"); }
}
function printScreen (xmlObj):Void {
var xmlNode:XMLNode = xmlObj.firstChild;
for (i=0;i<xmlNode.childNodes.length;i++){
swf = xmlNode.childNodes[i].childNodes[0].firstChild.nodeValue;
url = xmlNode.childNodes[i].childNodes[1].firstChild.nodeValue;
tgt = xmlNode.childNodes[i].childNodes[2].firstChild.nodeValue;
_root["swf_"+i]=swf;
_root["url_"+i]=url;
_root["tgt_"+i]=tgt;
banners++;
}
}
Para los que saben un poco de ActionScript, está de más explicar el código anterior. Para los que no entienden nada de lo que dice, acá les dejo un ejemplo (.fla) con comentarios explicando cada función.
En este ejemplo, utilicé el mismo código (ActionScript 2.0) para hacer un flash que cargue, al azar, uno de entre todos los banners que se tengan configurados en el xml (siempre y cuando estén las fotos necesarias y el xml con la información).
Los comentarios han sido cerrados.
Sin embargo, desde ahora podrás comentar en la nueva dirección de esta entrada: http://www.sebastianbarria.com/actionscript/integrar-flash-con-xml/
RSS | XHTML | CSS | Licencia CC (BY-NC-SA)
© peivem 2008. Todos los derechos reservados | Versión 1.62 | Diseño y desarrollo por GEEKBOX