Drag and Drop con ActionScript 3.0 y Flash 9
Ayudándonos del tercer ejemplo de Betaruce he conseguido hacer un Drag and Drop.
1. Creamos un Archivo Nuevo con extensión .as. Le llamaremos, por ejemplo, dragMc.as. Procedemos a escribir el código.
a) Primero creamos el package e importamos las clases necesarias. La clase “display” porque contiene la clase MovieClip, y la clase “events” porque la necesitamos para los eventos de ratón (press) y (release)
package{
import flash.display.*;
import flash.events.*;
b) Creamos el nombre de la clase. Recordad que el nombre de ésta debe ser exactamente el mismo que el nombre del archivo.
public class dragMc extends MovieClip{
La clase debe ser pública para que se pueda acceder desde fuera. ‘extends’ indica que la clase la creamos a partir de la clase MovieClip ya existente.
c) Creamos un nuevo objeto del tipo MovieClip
public var miClip:MovieClip = new MovieClip();
d) Creamos una función pública ‘dragMc()’. Dentro dibujaremos un cuadrado con las esquinas redondeadas y lo rellenaremos de color
public function dragMc{
miClip.graphics.lineStyle(1, 0xFF0000); //Borde de color rojo de 1px
miClip.graphics.beginFill(0xFF0000); //Relleno el cuadrado de color rojo
miClip.graphics.drawRoundRect(100,100,100,100,10,10);
//Dibujo un rectángulo con bordes redondados.
e) Ahora nos quedaría añadir los eventos al MovieClip. Olvídate de on(press), on(release), … ahora tenemos que añadir un “escuchador de eventos”, un EventListener. Seleccionamos el evento deseado y le asignamos la función que va a ejecutar (apartado f). Después tenemos que añadir ‘dragMc’ al escenario. Para eso usamos ‘this.addChild(miClip)’
miClip.addEventListener(MouseEvent.MOUSE_DOWN,mousePress_handler);
miClip.addEventListener(MouseEvent.MOUSE_UP,mouseRelease_handler);
this.addChild(miClip);
f) Tenemos que añadir, por último, las funciones ‘mousePress_handler’ y ‘mouseRelease_handler’
private function mousePress_handler(e:Event):void{
miClip.startDrag();
}
private function mouseRelease_handler(e:Event):void{
miClip.stopDrag();
}
Nota: Las funciones las hemos definido privadas para que no se pueden acceder desde fuera, y que solo la clase pueda acceder a ellas.
2. Después nos quedaría crear un archivo fla con el nombre que deseemos y en las propiedades en ‘Document class’ añadimos el nombre del archivo .as creado.

Podeis descargaros la clase ‘dragMc.as’, el archivo ‘dragMc.fla’ y ‘dragMc.swf’ en este enlace.
[…] Algo de AS3 [AS3] FrameRate, Eventos y agregar elementos al Stage [AS3] Cargando Información Externa. XML. Drag and Drop con ActionScript 3.0 y Flash 9 […]
una pregunta…En este caso tienes un package que contiene clases. como harias para tener clases en diferentes ficheros. usarias import? Gracias
Hola c4p4.
Exacto. Yo al menos lo haría de esa manera. Tener para cada clase un fichero .as que importaría en el IDE de flash.
Salu2
Santi M.
[…] Algo de AS3 [AS3] FrameRate, Eventos y agregar elementos al Stage [AS3] Cargando Información Externa. XML. Drag and Drop con ActionScript 3.0 y Flash 9 […]