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);
