Ver Mensaje Individual
  #1 (permalink)  
Antiguo 06/07/2004, 06:56
Avatar de duchamp
duchamp
 
Fecha de Ingreso: enero-2002
Ubicación: Patagonia
Mensajes: 216
Antigüedad: 22 años, 10 meses
Puntos: 1
Carga desde XML - Ayuda con este script

Resulta que estoy intentando adaptar un ejemplo que encontré por allí a un proyecto, pero han surgido dos o tres cuestiones sobre las que necesitaría ayuda
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:
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;
};
Mi db.xml luce algo como esto (son unos 20 items):

Código:
<?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 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?

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:
//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;
	}
}
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é ...

Gracias de antemano!
__________________
_____________________
Duchamp