Comunidad de diseño web y desarrollo en internet online

Generar condicional con dato de XML

Citar            
MensajeEscrito el 30 Mar 2011 08:50 pm
Buenas!
En esta oportunidad escribo para que me ayuden a tomar un valor numérico de un archivo XML, y luego dependiendo de qué número sea, mostrar un circulo de color en un determinado fotograma de un mc mediante "gotoAndStop". Las opciones numéricas son 1, 2, 3 y 4. Dependiendo del valor colocado en cada hijo del XML se mostrará el circulo de color del fotograma 1, 2, 3 o 4 del mc.

Código XML:

Código XML :

<?xml version="1.0" encoding="utf_8"?>
<ocr> 
<hijo colorbol="3" titulo="Bla">
<hijo colorbol="4" titulo="BlaBla">
<hijo colorbol="1" titulo="BlaBlaBla">
</ocr>


Código Actionscript:

Código ActionScript :

var myString:String = colorbol[i];
var myNumber:Number = parseInt(myString, 10);
trace(myNumber);
if(myNumber==2){
   tc.tool.bol.gotoAndStop(2);
}


Evidentemente este código no funciona.
Espero que me ayuden a corregirlo, o cambiarlo si es necesario.
Muchas gracias!

Por juancile

34 de clabLevel



 

chrome
Citar            
MensajeEscrito el 31 Mar 2011 02:14 am
Si colorbol[i] es un string así: "2"
Se puede hacer simplemente

tc.tool.bol.gotoAndStop(parseInt(myString, 10));

Si no te funciona, posiblemente colorbol[i] no tenga el string que esperabas

Jorge

Por solisarg

BOFH

13669 de clabLevel

4 tutoriales
5 articulos

Genero:Masculino   Bastard Operators From Hell Premio_Secretos

Argentina

firefox
Citar            
MensajeEscrito el 31 Mar 2011 11:42 am
Hola Solisar!
Las lineas que me diste son mucho mas simples, buenisimo!
El problema es que por mas que en el codigo ponga: tc.tool.bol.gotoAndStop(2); ... para que vaya directamente al fotograma 2, pareciera que el codigo no responde.
Tene en cuenta que el clip "bol" esta dentro de "tool" y dentro de "tc". De todas formas no se por que no funciona. Puede ser porque este dentro del codigo del xml?

Aquí pongo el codigo completo:

Código ActionScript :

var xm:XML = new XML(); 
xm.ignoreWhite = true;
var spacer:Number = 50; 
var urls:Array = new Array();
var titulo:Array = new Array();
var objetivo:Array = new Array();
var inicio:Array = new Array();
var fin:Array = new Array();
var publico:Array = new Array();
var contacto:Array = new Array();
var link:Array = new Array();
var unidad_servicio:Array = new Array();
var unidad_pais:Array = new Array();
var tipo_elemento:Array = new Array();
var ruta:Array = new Array();
var colorbol:Array = new Array();

xm.onLoad = function(success) { 
   var photos:Array = this.firstChild.childNodes;
   for(i=0;i<photos.length;i++) { 
      titulo.push(photos[i].attributes.titulo); 
      objetivo.push(photos[i].attributes.objetivo);  
      inicio.push(photos[i].attributes.inicio); 
      fin.push(photos[i].attributes.fin); 
      publico.push(photos[i].attributes.publico); 
      contacto.push(photos[i].attributes.contacto); 
      link.push(photos[i].attributes.link); 
      unidad_servicio.push(photos[i].attributes.unidad_servicio); 
      unidad_pais.push(photos[i].attributes.unidad_pais); 
      tipo_elemento.push(photos[i].attributes.tipo_elemento); 
      ruta.push(photos[i].attributes.ruta); 
      colorbol.push(photos[i].attributes.colorbol); 
     
      var newY:Number = i * (holder._height + spacer);
      var dupTc:MovieClip = tc.tool.duplicateMovieClip("tc" +i, 100 + i, {_y:newY+5});
      loadMovie(urls[i], "holder"+i);
      dupTc.titulo.text = "Título: " + titulo[i];
      dupTc.objetivo.text = "Obj: " + objetivo[i];
      dupTc.inicio.htmlText += "I: " + inicio[i];
      dupTc.fin.htmlText += "F: " + fin[i];
      dupTc.publico.htmlText += "P: " + publico[i];
      dupTc.contacto.htmlText += "Cont: " + contacto[i];
      dupTc.link.htmlText += "Link: " + link[i];
      dupTc.unidad_servicio.htmlText += "Unidad : " + unidad_servicio[i];
      dupTc.unidad_pais.htmlText += "Unidad: " + unidad_pais[i];
      dupTc.tipo_elemento.htmlText += "Tipo: " + tipo_elemento[i];
      dupTc.ruta.htmlText += "Ruta: " + ruta[i];
      tc.tool._visible = false;
     
      //Esto es lo que no funciona
      tc.tool.bol.gotoAndStop(colorbol[i]);
     
   }    
} 
var aleatorio:Number = Math.round(Math.random()*20000-30000); 
xm.load("ocr.xml"); 

Por juancile

34 de clabLevel



 

chrome
Citar            
MensajeEscrito el 31 Mar 2011 12:07 pm
Entonces es un tema de rutas. Siempre trazá el destino

trace(tc.tool.bol)

Si da undefined, no estás en la ruta correcta

Jorge

Por solisarg

BOFH

13669 de clabLevel

4 tutoriales
5 articulos

Genero:Masculino   Bastard Operators From Hell Premio_Secretos

Argentina

firefox
Citar            
MensajeEscrito el 31 Mar 2011 07:52 pm
Jorge.
El resultado de esto:
tc.tool.bol.gotoAndStop(colorbol[i]);
trace(tc.tool.bol);

Me da esto:
_level0.instance5.theText.tc.tool.bol
_level0.instance5.theText.tc.tool.bol
_level0.instance5.theText.tc.tool.bol
_level0.instance5.theText.tc.tool.bol
_level0.instance5.theText.tc.tool.bol
_level0.instance5.theText.tc.tool.bol
_level0.instance5.theText.tc.tool.bol
_level0.instance5.theText.tc.tool.bol

No es undefined pero tampoco entiendo mucho que significa.
El clip sigue sin posicionarse en los fotogramas correspondientes.

Hay un total de 8 clips llamados bol. Cada uno dentro de ellos tiene cuatro circulos de diferentes colores, cada uno posicionado en los fotogramas 1, 2, 3 y 4. Dependiendo del valor que de colorbol[i] en cada nodo del XML, debe mostrar un circulo diferente. La salida de colorbol[i] para los 8 nodos es:
1
2
4
1
2
3
1
1

Espero que ahora se entienda un poco mejor.
Espero un respuesta!

Por juancile

34 de clabLevel



 

chrome
Citar            
MensajeEscrito el 01 Abr 2011 09:14 pm
Hola, acabo de revisar tu código y lo que está mal no es el actioscript, sino la sintaxis de tu xml . . .
No estas cerrando los nodos hijos, debería quedar algo así:

Código :

<?xml version="1.0" encoding="utf_8"?>
<ocr> 
<hijo colorbol="1" titulo="Bla"></hijo>
<hijo colorbol="2" titulo="BlaBla"></hijo>
<hijo colorbol="3" titulo="BlaBlaBla"></hijo>
</ocr>


Lo probé con tu codigo y este xml y funcionó normal . Espero te ayude!

Por kikefcb

16 de clabLevel



 

Flash Developer & Animator

firefox

 

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