El siguiente código me carga los datos de un archivo xml, creando a la izquierda un listado con nombres y arriba a la derecha los datos relacionados con cada nombre (se muestran al cliquear cada nombre).
Hasta allí todo bien, funciona sin problemas.
Este es el código (primer frame de una película vacía):
Código:
Mi db.xml luce algo como esto (son unos 20 items):aqui = this; basex = 5; basey = 5; //Instancia de la clase var contactos:xmltoObject = new xmltoObject(); //cargamos nuestro XML var mi_xml = new XML(); mi_xml.ignoreWhite = true; mi_xml.load("db.xml"); mi_xml.onLoad = function() { info = contactos.makeObject(this); for (var e in info) { var menu_mc = aqui.boton(info[e].nombre, e); menu_mc.id = e; menu_mc._x = basex; menu_mc._y = basey; basey += menu_mc._height; menu_mc.onRelease = function() { datos = "<b>Nombre</b>: "+info[this.id].nombre+"<br>"; datos += "<b>Direccion</b>: "+info[this.id].direccion+"<br>"; datos += "<b>Telefono</b>: "+info[this.id].telefono+"<br>"; datos += "<b>Web</b>: "+info[this.id].web+"<br>"; datos += "<b>E-mail</b>: "+info[this.id].email+"<br>"; info_mc = aqui.boton(datos, e+25); info_mc._x = 190; info_mc._y = 5; }; } }; /************************************************ Prototipo para crear Botones... **************************************************/ MovieClip.prototype.boton = function(label, prof) { var clip = this.createEmptyMovieClip("a"+prof, prof); clip.createTextField("label_txt", 1, 0, 0, 0, 0); clip.label_txt.autoSize = true; clip.label_txt.multiline = true; clip.label_txt.html = true; clip.label_txt.htmlText = label; return clip; };
Código:
El primer inconveniente es que necesitaría scrollear el listado de la izquierda (los nombres) porque en la película donde insertaré esto tengo un espacio limitado y la cantidad de nombres sobrepasa ese espacio ... pero ¿Cómo?<?xml version='1.0' encoding='UTF-8' ?> <datos> <integrante> <nombre>Laura Perez</nombre> <direccion>Berutti 67</direccion> <telefono>435-907</telefono> <web>www.laura.com.mx</web> <email>[email protected]</email> </integrante> <integrante> <nombre>Claudia Sanchez</nombre> <direccion>Mathews 201</direccion> <telefono>443-006</telefono> <web>www.sanchez.com.mx</web> <email>[email protected]</email> </integrante> </datos>
El segundo problema es que necesito poner los textos en Arial 11 y aparecen en Times New Roman, esto desde dónde debería hacerlo?
Ah, el xmltoObject que cita el script es éste archivo externo (xmltoObject.as):
Código:
La idea es tener un listado de nombres de un lado (scrolleable) que al hacer click sobre cada uno muestre los datos relacionados a la derecha. Me parece muy útil tener esos datos en un XML, pero hasta acá llegué ... //xmltoObject.as class xmltoObject { function xmltoObject() { } function makeObject(obj:XML):Array { var info_array = []; var nodo = obj.firstChild.childNodes; for (var a in nodo) { var info = {}; var hijo = nodo[a].childNodes; for (var e in hijo) { info[hijo[e].nodeName] = hijo[e].firstChild; } info_array.push(info); } return info_array; } }
Gracias de antemano!