Comunidad de diseño web y desarrollo en internet online

Cargando XML con arreglos

Citar            
MensajeEscrito el 14 Abr 2008 05:28 pm
tengo este problema lo que yo quieres es poner un menu dinamico por medio de un xml en donde manejo una pelicula llamada "mcop" y la voy duplicando y toma su posicion, ya cree la funcion y claro los lee, pero al duplicar dicho movieclip el resultado que me manda es indefinido y logicamente no me visualiza nada del contenido del xml el codigo es este:

Código :

//-------------------------------------Cargo XML-----------------------------------
abrirXmlOpcion(cargarOp,"g1");
function abrirXmlOpcion(funcion, archivo) {
   xmlOpciones = new XML();
   xmlOpciones.ignoreWhite = true;
   xmlOpciones.onLoad = funcion;
   xmlOpciones.load("xml/"+archivo+".xml");
}
var posx = 27;
var posy = 10;
var espacioT = 20;
mcOps._visible = false;
//------------------------------------Cargo las opciones--------------------------------------------------------------
function cargarOp() {
   var galeria = this.firstChild.childNodes;
   arIdOp = new Array();
   arTituloOp = new Array();
   for (b=0; b<galeria.length; b++) {
      arIdOp[b] = this.firstChild.childNodes[b].attributes.id;
      arTituloOp[b] = this.firstChild.childNodes[b].attributes.titulo;
      duplicateMovieClip("mcOp", "mcOp"+b, b);// Lo duplico
                                this["mcOp"+b].txt_titulo.text =  arTituloOp[b]; 
      this["mcOp"+b]._x = posx;
      this["mcOp"+b]._y = posy;
      this["mcOp"+b].numBtn = b;
      posx += espacioT;
   }
}

cuando empiezo a duplicar las peliculas es donde tengo el problema me manda indefinido e incluso lo mando estatico con uno solo y si me lo hace en donde tengo el problema

Saludos

Por joshuavw

Claber

306 de clabLevel



Genero:Masculino  

Juego, aprendo y programo

msie7
Citar            
MensajeEscrito el 14 Abr 2008 08:20 pm
this.firstChild.childNodes no apunta a nada, debería ser xmlOpciones.firstChild.childNodes, y así por cada this. No se porqué usas los arrays y no asignas directamente

Jorge

Por solisarg

BOFH

13669 de clabLevel

4 tutoriales
5 articulos

Genero:Masculino   Bastard Operators From Hell Premio_Secretos

Argentina

firefox
Citar            
MensajeEscrito el 14 Abr 2008 08:39 pm
mmmm ok ya lo modifique lo que no entiendo es como es asignar directamente ?
mi codigo modificado es:

Código :

var xmlOpciones = new XML();
abrirXmlOpcion(cargarOp,"g1");
function abrirXmlOpcion(funcion, archivo) {
   xmlOpciones.ignoreWhite = true;
   xmlOpciones.onLoad = funcion;
   xmlOpciones.load("xml/"+archivo+".xml");
}
var posx = 27;
var posy = 10;
var espacioT = 20;
//------------------------------------Cargo las opciones--------------------------------------------------------------
function cargarOp() {
   galeria = xmlOpciones.firstChild.childNodes;
   arIdOp = new Array();
   arTituloOp = new Array();
   trace("El tamaño es:"+galeria);
    for (b=0; b<galeria.length; b++) {
      duplicateMovieClip("mcOp","mcOp"+b,b);
      this["mcOp"+b].txt_titulo.text=xmlOpciones.firstChild.childNodes[b].attributes.titulo;
      this["mcOp"+b]._x = posx;
      this["mcOp"+b]._y = posy;
      posx += espacioT;
   }
}

e igual sigo teniendo el mismo problema de que al duplicarl la pelicula no me aparece el contenido,

Saludos cordiales

Por joshuavw

Claber

306 de clabLevel



Genero:Masculino  

Juego, aprendo y programo

msie7
Citar            
MensajeEscrito el 14 Abr 2008 08:47 pm
Y esto?

xmlOpciones.onLoad = funcion;

Debería ser:

xmlOpciones.onLoad = cargarOp

Traza los valores dentro de cargarOp a ver si salen correctamente

Jorge

Por solisarg

BOFH

13669 de clabLevel

4 tutoriales
5 articulos

Genero:Masculino   Bastard Operators From Hell Premio_Secretos

Argentina

firefox
Citar            
MensajeEscrito el 14 Abr 2008 08:59 pm
si los carga correctamente

Código :

function cargarOp() {
   galeria = xmlOpciones.firstChild.childNodes;
   arIdOp = new Array();
   arTituloOp = new Array();
   trace("El tamaño es:"+galeria);
    for (b=0; b<galeria.length; b++) {
      trace(xmlOpciones.firstChild.childNodes[b].attributes.id);
      trace(xmlOpciones.firstChild.childNodes[b].attributes.titulo);
      }
}

el xml es el siguiente

Código :

<?xml version="1.0" encoding="utf-8"?>
<MENU titulo ="PARQUE">
  <OPCION id="1" titulo="BUGAMBILIA">
  </OPCION>
  <OPCION id="2" titulo="TULIPAN">
  </OPCION>
  <OPCION id="3" titulo="ORQUIDEA">
  </OPCION>
</MENU>


Pero al querer duplicar el movie clip me manda undefined
duplicateMovieClip("mcOp","mcOp"+b,b);
no se en que estoy mal, lo que trato de hacer es un menu en xml claro con su respectiva imagen
Espero que me puedan echar la mano
Saludos

Por joshuavw

Claber

306 de clabLevel



Genero:Masculino  

Juego, aprendo y programo

msie7
Citar            
MensajeEscrito el 14 Abr 2008 09:18 pm
Lo siguiente: mcOp es un MC con el nombre de instancia correcto, cuando lo trazas sale la referencia correcta?

trace(mcOp)

¿Lo que te manda undefined es esto?

trace(this["mcOp"+b])

Jorge

Por solisarg

BOFH

13669 de clabLevel

4 tutoriales
5 articulos

Genero:Masculino   Bastard Operators From Hell Premio_Secretos

Argentina

firefox
Citar            
MensajeEscrito el 14 Abr 2008 09:24 pm
si eso me manda el undefined

Por joshuavw

Claber

306 de clabLevel



Genero:Masculino  

Juego, aprendo y programo

msie7
Citar            
MensajeEscrito el 15 Abr 2008 01:40 am
Entonces o o hay nada que duplicar (el trace anterior te da también undefined) o el loop no se ejecuta porque no encuentra datos para recorrer.

Jorge

Por solisarg

BOFH

13669 de clabLevel

4 tutoriales
5 articulos

Genero:Masculino   Bastard Operators From Hell Premio_Secretos

Argentina

firefox
Citar            
MensajeEscrito el 15 Abr 2008 03:47 pm
el loop si se ejecuta y si encuentra los datos el problema es que no encuentra el this["mcOp"+b]

Por joshuavw

Claber

306 de clabLevel



Genero:Masculino  

Juego, aprendo y programo

msie7

 

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