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.
Document class

Podeis descargaros la clase ‘dragMc.as’, el archivo ‘dragMc.fla’ y ‘dragMc.swf’ en este enlace.