Comunidad de diseño web y desarrollo en internet online

duda con function() y attachMovie desde XML

Citar            
MensajeEscrito el 20 Nov 2009 08:06 pm
Hola a todos.
Estoy haciendo un mapa y gracias a vuestros tutoriales y a vuestra ayuda en los foros, ya lo tengo bastante adelantado.
La cuestión es que en el mapa tengo un listado de lugares que tira de XML.
El XML es así:

Código XML :

<ale nombre="Pueblo1" descripcion="País: España."
posX="414.5"
posY="188.4"
imagen1="lugares/pueblo1.jpg" />



El flash recoge esta información y, por un lado, saca una lista de los nombres de los sitios y por otro lado sitúa un punto en el mapa con las coordenadas posX y posY.
Pero aquí es donde falla, tengo una función generar() que es la que crea tanto los botones que forman la lista de pueblos como los puntos según las coordenadas, pero no es capaz de hacer las dos cosas a la vez.
Aquí podéis ver mi código:

Código ActionScript :

function generar(){
   totalc = ale.length;
   final = totalc_visible;
   for(i=inicio;i<totalc;i++){
       attachMovie("mcBoton","boton"+i,i);
      this["boton"+i].nombre = ale[i].attributes.nombre;
      this["boton"+i].link = ale[i].attributes.link;
      this["boton"+i].reg = i;
       this["boton"+i]._x = 800;
      this["boton"+i]._y = y;
      y+=40;

       posX = Number(ale[i].attributes.posX);
         posY = Number(ale[i].attributes.posY);      
      attachMovie("punto","punto"+i,i);
      this["punto"+i]._x = posX;
      this["punto"+i]._y = posY;
       }
   }


Ahora mismo se salta la primera parte y sólo crea los puntos, y si lo escribo al revés, lo de los puntos primero, entonces se lo salta y sólo crea la lista de botones.
¿Cómo puedo hacer para que haga las dos cosas?
Muchísimas gracias.

Por ladyevil

14 de clabLevel



 

firefox
Citar            
MensajeEscrito el 20 Nov 2009 10:49 pm
en el attachMovie le asignas un nivel de profundidad en donde se va a colocar/cargar el mc en tu caso es "i", ahora si boton esta en "i" y quieres poner punto también en "i" pues no se va a poder, solo va a cargar 1, puedes poner en el 2o "i+totalc" o también puedes usar this.getNextHighestDepth() en los 2 attachs

Por nasho

Claber

908 de clabLevel

1 tutorial

Genero:Masculino  

Web Developer

firefox
Citar            
MensajeEscrito el 22 Nov 2009 03:24 pm
¡Solucionado! Muchísimas gracias, era eso exactamente.

:D

Por ladyevil

14 de clabLevel



 

firefox
Citar            
MensajeEscrito el 23 Nov 2009 03:50 pm
de nada :D

Por nasho

Claber

908 de clabLevel

1 tutorial

Genero:Masculino  

Web Developer

firefox
Citar            
MensajeEscrito el 24 Nov 2009 06:44 pm
Hola otra vez!
Una última duda, ya todo lo demás funciona ;)
Los botones que creé en el paso anterior están hechos para que al pulsar en ellos, aparezca un "bocadillo" con la información sacada del xml.
El bocadillo es un mc al que tengo con alpha=0 hasta que el botón es pulsado y entonces lo coloco en las coordenadas indicadas por el botón y lo relleno con la información correspondiente, este es el código:

Código ActionScript :

boton.onRelease=function(){
   with(_parent){
      _root.mapa.bocata._alpha=100;
      _root.mapa.bocata._x = interes[reg].attributes.posX;
      _root.mapa.bocata._y = interes[reg].attributes.posY;
      desc_mask.gotoAndPlay(1);
      _root.mapa.bocata.descripcion = "<P ALIGN=\"left\">" + interes[reg].attributes.descripcion;
      _root.mapa.bocata.descripcion.scroll = 1;
      _root.mapa.bocata.marca = interes[reg].attributes.nombre;
      img1 = interes[reg].attributes.imagen1;
      _root.mapa.bocata.foto1.loadMovie(img1);
   _root.mapa.bocata.ver_mas.linkurl = interes[reg].attributes.link;
      _root.mapa.bocata.ver_mas.onRelease = function () { 
           getURL(this.linkurl, "_blank"); 
           }
      }
}


Todo funciona perfectamente excepto que el bocadillo aparece debajo de los puntos cargados dinámicamente, ¿cómo puedo decirle que se coloque en el nivel superior del flash, encima de los botones?
Muchas gracias por adelantado
Un saludo

Por ladyevil

14 de clabLevel



 

firefox
Citar            
MensajeEscrito el 24 Nov 2009 06:53 pm
ladyevil, para cambiar de level algo, tienes que usar la función swapDepths():

Código ActionScript :

mc.swapDepths(target)


Saludos, Hernán . -

Por Hernán

BOFH

6148 de clabLevel

19 tutoriales
23 articulos

Genero:Masculino   REC Desarrollador de GAIA

Marketing & IT

firefox
Citar            
MensajeEscrito el 24 Nov 2009 06:56 pm
Hola, lo estoy intentando así:

_root.mapa.bocata.swapDepths(punto);

pero no funciona ¿?

Por ladyevil

14 de clabLevel



 

firefox
Citar            
MensajeEscrito el 24 Nov 2009 06:58 pm
¡Lo encontré!

mx.behaviors.DepthControl.bringToFront(_root.mapa.bocata);
Muchas gracias de todas formas.
Saludos ;)

Por ladyevil

14 de clabLevel



 

firefox

 

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