Comunidad de diseño web y desarrollo en internet online

ayuda con un addChild

Citar            
MensajeEscrito el 28 Dic 2009 01:54 am
:D hola a todos, cuento con el siguiente caso, tengo un objeto en la libreria digamos boton, y quiero que este objeto se me inserte en varias partes de la pantalla por medio de un addChild pero que los valores de ubicacion x y y estén en un array algo asi:

Código ActionScript :

package {
     public class codigo extends Movieclip {
         public var i:int;
         public var botones:boton=new boton();//boton es el nombre de la clase que tiene el objeto de la librería
         public var ubicacionx:Array=new Array(10,60,100);//estos son los punto del eje x en el que se ubicara el objeto
         public var ubicaciony:Array=new Array(50,30,60);//estos son los puntos del eje y en el que se ubicara el objeto
         public function codigo () {
            addEventListener (Event.ENTER_FRAME, agragar);
          }
          public function agregar (e:Event) {
              for (i = 0 ; i < 3 ; i++) {
                    botones.x = ubicacionx[i];
                    botones.y = ubicaciony[i];
                    addChild(botones);
                }
            }
       }
}


lo raro es que al ejecutar el código solo se muestra un objeto en la ultima posición, y no tres en tres distintas posiciones como se tenia pensado.
agradesco de antemano la ayudita ^^

Por tuxianof

48 de clabLevel



 

chrome
Citar            
MensajeEscrito el 28 Dic 2009 02:14 am
Por un lado lo que estas haciendo al poner ese for dentro de un evento ENTER_FRAME es repetir ese bucle (for) constantemente. Ademas creaste un solo boton... El código seria así:

Código ActionScript :

package { 
     public class codigo extends Movieclip { 
         public var ubicacionx:Array=new Array(10,60,100);//estos son los punto del eje x en el que se ubicara el objeto 
         public var ubicaciony:Array=new Array(50,30,60);//estos son los puntos del eje y en el que se ubicara el objeto 
         public function codigo () { 
            agregar()
          } 
          private function agregar () { 
              for (var i:uint = 0 ; i < 3 ; i++) { 
                   var btn:boton = new boton(); //boton es el nombre de la clase que tiene el objeto de la librería 
                   btn.name = "btn"+i;//para poder identificarlos luego
                    btn.x = ubicacionx[i]; 
                    btn.y = ubicaciony[i]; 
                    addChild(btn); 
                } 
            } 
       } 
}


Saludos

Por GustavoV

Claber

136 de clabLevel



Genero:Masculino  

firefox
Citar            
MensajeEscrito el 28 Dic 2009 02:52 am
gracias por la ayuda, pero ahora trato de agregar un listener a uno de los botones que se agregaron pero no me reconoce el nombre del boton que deberia hacer para poder agregar un listener a esos botones

Por tuxianof

48 de clabLevel



 

chrome
Citar            
MensajeEscrito el 28 Dic 2009 04:06 am
despues de crearlos (con el new boton()) simplemente agrega el listener. te quedaria algo asi...

Código ActionScript :

package {  
     public class codigo extends Movieclip {  
         public var ubicacionx:Array=new Array(10,60,100);//estos son los punto del eje x en el que se ubicara el objeto  
         public var ubicaciony:Array=new Array(50,30,60);//estos son los puntos del eje y en el que se ubicara el objeto  
         public function codigo () {  
            agregar() 
          }  
          private function agregar () {  
              for (var i:uint = 0 ; i < 3 ; i++) {  
                    var btn:boton = new boton(); //boton es el nombre de la clase que tiene el objeto de la librería  
                    btn.name = "btn"+i;//para poder identificarlos luego 
                    btn.addEventListener(MouseEvent.CLICK, click)
                    btn.x = ubicacionx[i];  
                    btn.y = ubicaciony[i];  
                    addChild(btn);  
                }  
            }
            private function click(e:MouseEvent):void{
                    trace(e.target.name) // te deberia devolver btn0 o btn1 o btn2 segun el boton que hayas apretado
            }
       }  
} 


Saludos

Por GustavoV

Claber

136 de clabLevel



Genero:Masculino  

firefox

 

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