Comunidad de diseño web y desarrollo en internet online

Problemas con XML/ActionScript

Citar            
MensajeEscrito el 07 Ene 2008 12:06 am
¡Muy buenas a todos! Muchas gracias por pasar. Discúlpenme si mi pregunta es digna de un ignorante, pero he intentado de muchas formas.

Resulta que quiero crear un cancionero en SWF. Tengo dos campos de texto en Flash: "titulo_txt", que indica el título de la canción, y "letra_txt" que indica el contenido de la canción. Tengo un menú de aproximadamente 8 botones, cada uno con el título de una canción. ¿El objetivo? Si hago clic en un botón, me muestra la letra de una canción con su título, y si clickeo en otro botón, me mostrará otra canción.

Todo bien hasta que decidí crear un sistema de este tipo con XML. El archivo XML que tengo es el siguiente:

Código :

<cancion1>
<titulo>Canción 1</titulo>
<letra>blablablabla</letra>
</cancion1>

<cancion2>
<titulo>Cancion 2</titulo>
<letra>blibliblibli</letra>
</cancion2>
...


Entonces la idea es que el NOD "titulo" y "letra" aparezca en los campos de texto correspondientes y por canción. ¿Me podrían ayudar, por favor? No sé si debo arreglar algo en el archivo XML para facilitar el trabajo. Agradecería muchísimo sus respuestas.[/code]

Por Klilo

8 de clabLevel



Genero:Masculino  

Chile

firefox
Citar            
MensajeEscrito el 07 Ene 2008 01:40 am
para eso tienes que saber programar. y usar la clase XML lee aqui ahi esta todo lo que te hace falta.

http://www.cristalab.com/tutoriales/12/tutorial-de-xml-en-flash

Por DiegoAzul

376 de clabLevel



 

Mx

firefox
Citar            
MensajeEscrito el 07 Ene 2008 02:23 am
Muchas gracias, DiegoAzul, pero descubrí que la solución estaba en "nextSibling" para pasar al siguiente "árbol". Lo que no consigo es regular los botones. No importa cuál botón presione, siempre me muestra el último árbol. Les adjunto el ActionScript que estoy usando:

Código :

var obj_xml:XML = new XML();
obj_xml.ignoreWhite = true;
obj_xml.onLoad = listonmask.lista_mc.cancion1.onRelease=function(exito) {
   cargarXML();
   if (exito) {
      titulo_txt.text = obj_xml.firstChild.firstChild.childNodes[0].firstChild.nodeValue;
      letra_txt.text = obj_xml.firstChild.firstChild.childNodes[1].firstChild.nodeValue;
   } else {
      letra_txt.text = "Error";
   }
};

obj_xml.onLoad = listonmask.lista_mc.cancion2.onRelease=function(exito) {
   cargarXML();
   if (exito) {
      titulo_txt.text = obj_xml.firstChild.firstChild.childNodes[0].firstChild.nodeValue;
      letra_txt.text = obj_xml.firstChild.firstChild.childNodes[1].firstChild.nodeValue;
   } else {
      letra_txt.text = "Error";
   }
};

function cargarXML() {
   obj_xml.load("letras.xml");
}

¿Me podrían ayudar, por favor? =P

Por Klilo

8 de clabLevel



Genero:Masculino  

Chile

firefox
Citar            
MensajeEscrito el 07 Ene 2008 09:30 pm
¡¡SOLUCIONADO!!
Lo que simplemente debía hacer era:
1. Eliminar el "if(exito)" y su "else" de cada función de botón
2. La función "cargarXML()" excluirla de la función de cada botón, es decir, escribirla bajo "obj_xml.onLoad"
3. Al cargar el objeto XML ("obj_xml.onLoad"), mostrar un mensaje que demuestre que está listo, no comenzar inmediatamente con la función de los botones. Esto es:

Código :

obj_xml.onLoad = escribirListo();

function escribirListo(){
titulo_txt.text="Escoge tu canción";
} 


Muchas gracias a DiegoAzul =P

Por Klilo

8 de clabLevel



Genero:Masculino  

Chile

firefox

 

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