Comunidad de diseño web y desarrollo en internet online

probema de sintaxis

Citar            
MensajeEscrito el 01 Dic 2006 12:03 pm
Hola a todos, a ver si me podeis echar una mano, tengo un código en el que leo de un xml los datos que quiero ir insertando en la web. Ejemplo miembro_1 nombre direccion mail foto etc.

Bien pues quiero ir leyendo los datos de todos los miembros y para ello por ejemlo en las fotos utilizo esta línea:

Código :

nuevoClip.mini_foto.loadMovie(datos_xml.miembros.miembro_contador._atributos.img1);

donde contador es una variable que va cambiando, pero el flash me dice que no está bien escrita.

Gracias[/flash]

Por silver

25 de clabLevel



 

msie
Citar            
MensajeEscrito el 01 Dic 2006 04:41 pm
Así no se lee xml en actionscript2, sí en as3. Para esto mira la referencia de flash o el tutorial de cristalab
http://www.cristalab.com/tutoriales/12/tutorial-de-xml-en-flash

Por Zah

BOFH

4290 de clabLevel

27 tutoriales
5 articulos

  Bastard Operators From Hell Editores

Zaragoza, España

firefox
Citar            
MensajeEscrito el 04 Dic 2006 10:57 am
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]

Por silver

25 de clabLevel



 

msie
Citar            
MensajeEscrito el 04 Dic 2006 03:48 pm
En el xml no pongas eso de miembro_1. Usa sólo etiquetas miembro.
Y será
nuevoClip.mini_foto.loadMovie(datos_xml.miembros.[variable]._atributos.img1));

Por Zah

BOFH

4290 de clabLevel

27 tutoriales
5 articulos

  Bastard Operators From Hell Editores

Zaragoza, España

firefox
Citar            
MensajeEscrito el 04 Dic 2006 04:42 pm
Y como sé de que miembro estoy cogiendo los datos, si todos se llaman igual?

Por silver

25 de clabLevel



 

msie
Citar            
MensajeEscrito el 04 Dic 2006 04:50 pm

Por Zah

BOFH

4290 de clabLevel

27 tutoriales
5 articulos

  Bastard Operators From Hell Editores

Zaragoza, España

firefox
Citar            
MensajeEscrito el 04 Dic 2006 06:26 pm
La idea es poner en MC las fotos de todos los miembros de un equipo de trabajo y debajo de cada foto el nombre de la persona, al clicar encima de la foto se abrirá a la derecha la foto ampliada, el nombre y una pequeña biografía de cada persona del equipo. Por eso necesito recuperar una información concreta de un miembro en concreto. No sé si me explico. Gracias por vuestra paciencia.

Por silver

25 de clabLevel



 

msie
Citar            
MensajeEscrito el 06 Dic 2006 10:06 am
Hola de nuevo, mirad con esta linea he conseguido que me coja la expresión correcta:

Código :


nuevoClip.mini_foto.loadMovie("datos_xml.miembros.miembro_"+contador+"._atributos.img1");


pero me lo coge como texto, ahora necesito convertir esa cadena de texto en el valor que tiene, no sé si existe algun parse* lo que sea para convertirlo. Gracias

Por silver

25 de clabLevel



 

msie
Citar            
MensajeEscrito el 12 Dic 2006 04:25 pm
He intentado probarlo con el comando add pero me sigue cogiendo el valor como cadena de texto (creo que se llama concatenar), lo que no se es como se puede desconcatenar esa cadena string.

Por silver

25 de clabLevel



 

msie
Citar            
MensajeEscrito el 13 Dic 2006 08:26 am
Ya lo he conseguido, lo dejo aquí por si a alguien le sirve. Resulta que la manera es esta:

Código :

nuevoClip.mini_foto.loadMovie([datos_xml][miembros.miembro_]contador[_atributos.img1]);

Por silver

25 de clabLevel



 

msie

 

Cristalab BabyBlue v4 + V4 © 2011 Cristalab
Powered by ClabEngines v4, HTML5, love and ponies.