Ver Mensaje Individual
  #1 (permalink)  
Antiguo 17/05/2007, 16:24
Avatar de Jowy
Jowy
 
Fecha de Ingreso: febrero-2007
Ubicación: En la red
Mensajes: 232
Antigüedad: 17 años, 2 meses
Puntos: 0
Lista importada mediante XML

Hola, estoy desarrollando una lista de nombres importados dinámicamente con XML. Como estoy iniciandome en la programación lo estoy haciendo siguiendo este tutorial de desarrollo web:
http://www.desarrolloweb.com/articul...l-a-flash.html
y ayudándome de un scroll que me bajé de inet.

Pues bien, la lista es muy simple, son nombres de clientes ordenados alfabeticamente. La lista acabada debería de ser así:

A
Angel Apellido Apellido
Antonio Apellido Apellido

C
Carlos Apellido Apellido
Cristian Apellido Apellido

M
Manuel Apellido Apellido
Maria Apellido Apellido

Z
Zoe Apellido Apellido

Y pretendo que se actualice en la película modificando solo el archivo XML que contiene los datos.

Esto es lo que contiene el XML.

lista.xml
Código:
<?xml version="1.0" encoding="iso-8859-1"?>
<lista>
	<seccion letra="A">
		<cliente nombre="Angel Apellido Apellido">
		</cliente>
		<cliente nombre="Antonio Apellido Apellido">
		</cliente>			
	</seccion>
	<seccion letra="C">
		<cliente nombre="Carlos Apellido Apellido">
		</cliente>
		<cliente nombre="Cristian Apellido Apellido">
		</cliente>			
	</seccion>
	<seccion letra="M">
		<cliente nombre="Maria Apellido Apellido">
		</cliente>
		<cliente nombre="Manuel Apellido Apellido">
		</cliente>			
	</seccion>	
	<seccion letra="Z">
		<cliente nombre="Zoe Apellido Apellido">
		</cliente>			
	</seccion>
</lista>
La idea es que se carguen los valores letra (cada letra representa una seccion) y nombre en 2 MovieClips (mc_seccion y mc_cliente)

Este es el code del action script en flash que me servirá para construir "lista.swf":
Código:
listaXML = new XML();
listaXML.ignoreWhite = true; 
listaXML.load("xml/lista.xml");
listaXML.onLoad = organizarXML;
stop(); 
// Esta es la función encargada de armar los Arrays a partir de los datos 
function organizarXML() 
	seccion = new Array();
	for (yy=0; yy<listaXML.firstChild.childNodes.length; yy++) { 
		seccion.push(listaXML.firstChild.childNodes[yy].attributes.letra);
		_root[listaXML.firstChild.childNodes[yy].attributes.letra] = new Array();
	for (aa=0; aa<listaXML.firstChild.childNodes[yy].childNodes.length; aa++) { 
		_root[listaXML.firstChild.childNodes[yy].attributes.letra].push( 
		listaXML.firstChild.childNodes[yy].childNodes[aa].attributes.cliente); 
		}
}
mostrarDatos();
} 
//Funcion para mostrar los datos
function mostrarDatos() { 
//Contruyo la lista
intContaClientes = 0;
intPosicion = 0;
intSeparar = 50; 
for (aa=0; aa<seccion.length; aa++) {
	_root.contenedor.attachMovie("mc_seccion", "mc_seccion"+aa, aa);
	_root.contenedor["mc_seccion"+aa]._y = (intPosicion * intSeparar);
	_root.contenedor["mc_seccion"+aa]._x = 25;
	_root.contenedor["mc_seccion"+aa].tx_seccion = seccion[aa];
	intPosicion++; 
	} 
for (bb=0; bb<_root[seccion[aa]].length; bb++) {
	_root.contenedor.attachMovie("mc_cliente", "mc_cliente"+intContaClientes, 100+intContaClientes);
	_root.contenedor["mc_cliente"+intContaClientes]._y = (intPosicion * intSeparar);
	_root.contenedor["mc_cliente"+intContaClientes]._x = 45;
	_root.contenedor["mc_cliente"+intContaClientes].tx_cliente = _root[seccion[aa]][bb];
	intPosicion++; 
	} 
intContaClientes++;
}

contenedor.setMask(mask_mc);
	_root.h_not = contenedor._height;
	_root.h_mask = mask_mc._height;
	_root.tramo = _root.h_not-_root.h_mask;
Como veis al final los clips se crean dinamicamente dentro de un MovieClip (contenedor) que los muestra en su interior. Hay una mascara que sirve para hacer el scroll del clip contenedor.

Pues bien, hago todo esto, todos los pasos del tutorial, y al exportar la lista me aparece en todos los valores "UNDEFINED". No se que estoy haciendo mal, creo que es porque la lista va colocada en una carpeta (/secciones/lista.swf) y luego la cargo dentro de una película principal (index.swf).

Puede ser que por esto las construcciones _root.contenedor...., _root[listaXML......, etc no sean válidas? O puede ser porque el linkage de los movieclips no lo haga correctamente? Yo lo hago los mc_cliente y mc_seccion con "export for runtime sharing" apuntando a "secciones/lista.swf"

:(

Alguien sabe donde esta el fallo?