El tema es que si que me lee el XML si le pongo un miembro en concreto. Este es el XML:
Código :
<equipo>
<miembros total="2">
<miembro_1 id="1" img1="fotos/1.jpg" img2="img.php?id=133" nombre="pepito" mail="[email protected]" descripcion="mabl lkjasbflksf lkjas fkhafklh akj kajhv kashfdkjanvlkjfdanvlkj ndfvjkn kjn v"></miembro_1>
<miembro_2 id="2" img1="fotos/2.jpg" img2="img.php?id=131" nombre="pepita" mail="[email protected]" descripcion="hdfb jhfbabfksbf jkjabfksdabfklas bfñks ifv"></miembro_2>
</miembros>
</equipo>
--------------------------------------------
Y es te el script que hago servir para el Flash:
Código :
var contador=1
var posX=150
var posY=100
var clase_xml = new XML();//objeto xml
clase_xml.ignoreWhite = true;// propieda para ignorar espacion en blanco
clase_xml.onLoad = function(){//clase_xml
//funcion leerXML recibe el primer nodo del xml, nivel de nodo, nombre del objeto contenedor para los datos del xml
function leerXML(rama_xml:XMLNode, nivel:Number, datos_xml:Object){
for(var xml in rama_xml.childNodes){ //mientras aya nodos hijos en la primeara etiqueta del xml
var nombreNodo_str = rama_xml.childNodes[xml].nodeName; //asignamos el nombre del nodo
if(datos_xml[nombreNodo_str] == undefined){ //si la dimension del array para nombre no esta creada
datos_xml[nombreNodo_str] = new Array();//la creamos
}
if(datos_xml[nombreNodo_str]["_atributos"] == undefined){//si la dimension del array para atributos no esta creada
datos_xml[nombreNodo_str]["_atributos"] = new Array();//la creamos
for(var atributos in rama_xml.childNodes[xml].attributes){//mientras aya atributos en el nodo
datos_xml[nombreNodo_str]["_atributos"][atributos] = unescape(rama_xml.childNodes[xml].attributes[atributos]);//asiganmos el nombre del atributo y su valor
}
}
if(rama_xml.childNodes[xml].hasChildNodes()){//si el nodo tiene nodos dentro
leerXML(rama_xml.childNodes[xml], (nivel + 1), datos_xml[nombreNodo_str]); //cargamos los nodos del siguiente nivel
}
}
}
if(this.loaded){
leerXML(this.firstChild, 0, datos_xml);// leemos el archivo xml
//trace(datos_xml.miembros._atributos.total); // imprimimos el total de nodos
for(var n in datos_xml.miembros){ // imprimimos los valores de los nodos segun atributo [nombre]
if(n != "_atributos"){
//trace(datos_xml.miembros[n]._atributos.nombre);
//trace(datos_xml.miembros.miembro_1._atributos.mail);
nuevoClip = _root.attachMovie("MC_minis", "MC_minis_"+contador, contador)
//nuevoClip.mini_foto.loadMovie("fotos/"+contador+".jpg");
//Aqui es donde no funciona
nuevoClip.mini_foto.loadMovie"datos_xml.miembros.miembro_"+contador+"._atributos.img1");
trace(nuevoClip)
nuevoClip._x=200
nuevoClip._y=posY
contador++
posY=posY+100
}
}
//play();
}else{
trace("no cargó el xml");
}
}
_global.datos_xml = new Object();
clase_xml.load("xml.php");
--------------------------------------
Si colocamos esta linea:
nuevoClip.mini_foto.loadMovie"datos_xml.miembros.miembro_1._atributos.img1");
si que funciona, pero me interesa darle el numero de miembro desde una variable.
[zah]Utiliza las etiquetas code para postear código[/zah]