Comunidad de diseño web y desarrollo en internet online

usar clse con bucle

Citar            
MensajeEscrito el 30 Jun 2009 03:17 pm
Hola a todos!, necesito hacer Drag&Drop de varios MC. Para eso tengo una clase q funciona perfectamente. El problema es q no se como hacer parautilizarla en un bucle, en AS2 lo hacia algo asi..

Código ActionScript :

Drag = function(){
   startDrag(this);
}
for(i=0;i<5;i++){
   this["Mc"+i].onPress = Drag;
}

ahora en AS3 no se como hacer para utilizar una misma funcion con un bucle, intente varias cosas pero no dio resultado.
esto es lo q uso para arrastrar un solo MC.

Código ActionScript :

var drag:Drag = new Drag(Mc_0);

Muchas Gracias!!

Por fabri_bit

36 de clabLevel



 

firefox
Citar            
MensajeEscrito el 30 Jun 2009 06:19 pm
Prueba algo así:

Código ActionScript :

for(i=0;i<5;i++) this["Mc"+i].addEventListener(MouseEvent.CLICK, drag)
function drag(e:MouseEvent){
  MovieClip(e.target).startDrag()
}


Jorge

Por solisarg

BOFH

13669 de clabLevel

4 tutoriales
5 articulos

Genero:Masculino   Bastard Operators From Hell Premio_Secretos

Argentina

firefox
Citar            
MensajeEscrito el 30 Jun 2009 06:35 pm
Hola Jorge, te agradezco por tu tiempo, pero no me ha funcionado de esa manera, aki dejo el codigo completo, kizas sirva de algo. Esta es la clase...

Código ActionScript :

package Clases
{
   import flash.display.*
   import flash.events.*;

   public class Drag extends MovieClip{
      public var clip:MovieClip = new MovieClip();
      public function Drag(nClip:MovieClip){
         clip = nClip;
         clip.buttonMode = true;
         clip.swapDepths();
         clip.addEventListener(MouseEvent.MOUSE_DOWN, MouseDown);
         clip.addEventListener(MouseEvent.MOUSE_UP, MouseUp);
      }
     
      private function MouseDown(e:Event):void{
         clip.startDrag();
      }

      private function MouseUp(e:Event):void{
         clip.stopDrag();
      }
   }
}

y esto es lo k pongo dentro del fla..

Código ActionScript :

// Esta linea si funciona.
var Mc_0:Drag = new Drag(down_0);

// ahora pruebo algo asi, pero no dio resultado...
for(var i:uint=0;i<10;i++){
   var Mc:Drag = new Drag(MovieClip("down_" + i));
}

Muchas gracias nuevamente!

Por fabri_bit

36 de clabLevel



 

firefox
Citar            
MensajeEscrito el 30 Jun 2009 06:44 pm
No, mi ejemplo es suponiendo que los MC llamados Mc0 ... Mc4 ya estuvieran en escena con su nombre de instancia, que es lo que veo en tu código de AS2 ... o?

Jorge

Por solisarg

BOFH

13669 de clabLevel

4 tutoriales
5 articulos

Genero:Masculino   Bastard Operators From Hell Premio_Secretos

Argentina

firefox
Citar            
MensajeEscrito el 30 Jun 2009 07:38 pm
si, los movie clips los tengo en la escena, pero de todos modos no dio resultado... :(
Gracias!

Por fabri_bit

36 de clabLevel



 

firefox
Citar            
MensajeEscrito el 30 Jun 2009 07:40 pm
Prueba usando

this.getChildByName("Mc"+i).addEventListener(MouseEvent.CLICK, drag)

Jorge

Por solisarg

BOFH

13669 de clabLevel

4 tutoriales
5 articulos

Genero:Masculino   Bastard Operators From Hell Premio_Secretos

Argentina

firefox
Citar            
MensajeEscrito el 30 Jun 2009 08:38 pm
ahi si funciona, pero me arrastra solo el MC q tengo dentro de Mc0 :(
Muchas gracias igual, seguire investigando y probando, si funciona publico la solucion.

Por fabri_bit

36 de clabLevel



 

firefox

 

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