Comunidad de diseño web y desarrollo en internet online

AS3 clase para diferentes Drags

Citar            
MensajeEscrito el 03 Dic 2007 03:24 pm
Hize un pequeño ejemplo de una clase Drag. Quizas alguno que ande despistado con las clases pueda entenderlas mejor de esta forma.

Descripción: Es una clase Drag, con 5 subtipos o formas de realizar un drag mediante un boton, o directamente en un Movie Clip.

Tipo1: Aprietas el boton, y puedes mover el MovieClip, hasta que vuelvas a apretar el boton.
Tipo2: Mientras mantentas apretado el boton, se movera el MovieClip.
Tipo3: Haciendo Double Click, puedes mover el Movie Clip hasta q vuelvas a hacer Double Click.
Tipo4: Permite Arrastrar Movie Clips.
Tipo5: Clickeas el MovieClip, y puedes moverlo, Clickealo de nuevo para dejarlo.

Código :

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

   public class Drag extends MovieClip{

      public var mc:MovieClip = new MovieClip();
      public var boton:SimpleButton = new SimpleButton();
      public var coger:Boolean = new Boolean();
     
      public function Drag1(miBoton,miClip){
                 mc = miClip;
       boton = miBoton;
                 boton.addEventListener(MouseEvent.MOUSE_DOWN, dragNoApretado);
       coger = true;
      }
     
      public function Drag2(miBoton,miClip){
                 mc = miClip;
       boton = miBoton;
                 boton.addEventListener(MouseEvent.MOUSE_DOWN, dragApretadoDown);
       boton.addEventListener(MouseEvent.MOUSE_UP, dragApretadoUp);
      }
     
      public function Drag3(miBoton,miClip){
                 mc = miClip;
       boton = miBoton;
                 boton.addEventListener(MouseEvent.DOUBLE_CLICK, dragNoApretado);
       coger = true;
      }
     
      public function Drag4(miClip){
                 mc = miClip;
                 mc.addEventListener(MouseEvent.MOUSE_DOWN, dragApretadoDown);
       mc.addEventListener(MouseEvent.MOUSE_UP, dragApretadoUp);
      }
     
      public function Drag5(miClip){
                 mc = miClip;
                 mc.addEventListener(MouseEvent.MOUSE_DOWN, dragNoApretado);
       coger = true;
      }
     
     private function dragApretadoDown(e:Event):void{
        mc.startDrag();
     }
     
     private function dragApretadoUp(e:Event):void{
        mc.stopDrag();
     }
     
     
      private function dragNoApretado(e:Event):void{
       if(coger == true){
          mc.startDrag();
          coger = false;
       }else{
          mc.stopDrag();
          coger = true;
       }
      }
   }
}


Este es un ejemplo en Flash, tengo 3 MovieClips para mover, uno de ellos con 3 botones.
El MovieClip de los botones, dependiendo de cada boton, se arrastra de una forma u otra.
Los otros dos Movie Clips se mueven, uno arrastrandolo y el otro con un click para empezar a moverlo y el otro para pararlo.

PD: Hay 6 botones, 3 dentro del MovieClip y 3 fuera, para probarlo tanto moviendolo con un boton de dentro del propio MC como con un boton de fuera del MC.

Código :

// -------- Importamos la clase Drag que esta en nuestra carpeta clases 
// -------- y se llama Drag.as de ahi que sea clases.Drag
import clases.Drag
// -------- Declaramos las variables midrag, para cada MovieClip a mover
var midrag:Drag = new Drag();
var midrag2:Drag = new Drag();
var midrag3:Drag = new Drag();
// -------- Click simple sin arrastre para el drag.
midrag.Drag1(boton1,cuadro1);
midrag.Drag1(cuadro1.boton2,cuadro1);
// -------- Click simple con arrastre para el drag.
midrag.Drag2(boton3,cuadro1);
midrag.Drag2(cuadro1.boton4,cuadro1);
// -------- Click doble sin arrastre para el drag.
midrag.Drag3(boton5,cuadro1);
midrag.Drag3(cuadro1.boton6,cuadro1);
// -------- Activamos el Click Doble en los Botones.
this.boton5.doubleClickEnabled = true;
this.cuadro1.boton6.doubleClickEnabled = true;
// -------- Click simple en un MovieClip para arrastrarlo
midrag2.Drag4(cuadro2);
midrag3.Drag5(cuadro3);


Por Ralstlin

0 de clabLevel



 

firefox
Citar            
MensajeEscrito el 04 Dic 2007 10:13 pm
que no va en tips o algo así?

Por master_of_puppetz

Claber

2483 de clabLevel

7 tutoriales
3 articulos

Genero:Masculino   Premio_Secretos

WebDev (Flex + PHP + JS)

firefox

 

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