Drag and Drop en AS3
Este es un pequeño ejemplo de como hacer un drag & drop de un Movieclip en actionscript 3.
Crearemos en flash9 un Movieclip al que llamaremos "clip".
En el fotograma añadiremos el siguiente código:
clip.addEventListener(MouseEvent.MOUSE_UP, onMouse_Up);
Con esto asignaremoslos eventos de pulsar y soltar el mouse sobre el clip a las funciones "onMouse_Down" y "onMouse_Up".
Ahora definiremos estas funciones:
clip.startDrag()
}
function onMouse_Up(e:Event):void{
clip.stopDrag();
}
Con esto ya tendríamos el MovieClip "clip" arrastrable.
Este mismo código lo podríamos haber puesto dentro de una clase AS3:
import flash.display.*
import flash.events.*;
//------------------------------------
public class Drag extends MovieClip{
public var clip:MovieClip = new MovieClip();
//------------------------------------
public function Drag(queClip){
clip = queClip
clip.addEventListener(MouseEvent.MOUSE_DOWN, onMouseDown);
clip.addEventListener(MouseEvent.MOUSE_UP, onMouseUp);
}
//------------------------------------
private function onMouseDown(e:Event):void{
clip.startDrag()
}
//------------------------------------
private function onMouseUp(e:Event):void{
clip.stopDrag();
}
}
}
Al crear el constructor de la clase deberemos pasarle el MovieClip a arrastrar como parámetro:
var drag:Drag = new Drag(clip);
Post relacinonados:




November 30th, 1999 at 12:00 am
hola, unas de las cosas que me costo averiguar, fue precisamente lo q indicas aqui en la instancia de tu clase
var drag:Drag = new Drag(clip);
dado q en el libro de cookbook de as 3.0 nunca mencionan esto, pero esta muy bueno tu aporte.
Vi que no usaste constructor en tu clase? no hay problemas con eso?.
saludos
eldervaz
pd.- pasame el dato de donde compraste tu dominio *.as :p
November 30th, 1999 at 12:00 am
Ups! fallo mio. Si que uso constructor, le cambié el nombre y no me di cuenta al publicarlo.. ya lo cambié
Drag()El domio .as lo compré aqui:
http://www.active24.es/
November 30th, 1999 at 12:00 am
esta implementacion falla si arrastras el componente por debajo de otro y sueltas el mouse