Drag and Drop with flash actionscript

Posted by druva | Flash, as3, utils | Friday 11 December 2009 5:25 am

The below code shows how to use the class


import flash.display.*;
import flash.events.MouseEvent;

//nameforDrag.text = "Drag this colored circles and drop into black circle";
var cRed:Sprite;
var cGreen:Sprite;
var cBlue:Sprite;
var cPink:Sprite;
var cBlack:Sprite;
var startPoint:Point;

function drag( event:MouseEvent ):void {
  startPoint = new Point(  );
  startPoint.x = event.target.x;
  startPoint.y = event.target.y;

  event.target.startDrag(  );
  setChildIndex( DisplayObject( event.target ), numChildren - 1 );
}

function target( event:MouseEvent ):void {
  event.target.stopDrag(  );

  if ( event.target.dropTarget == cBlack ) {
	var color:uint;
	switch ( event.target ) {
	  case cRed: color = 0xFF0000; break;
	  case cGreen: color = 0x00FF00; break;
	  case cBlue: color = 0x0000FF; break;
	  case cPink: color = 0xFF00FF; break;
	}

	cBlack.graphics.clear(  );
	cBlack.graphics.beginFill( color );
	cBlack.graphics.drawCircle( 100, 100, 50);
	cBlack.graphics.endFill(  );
  }

  event.target.x = startPoint.x;
  event.target.y = startPoint.y;
}

function dragAndDrop(  ) {
  cRed = new Sprite(  );
  cRed.graphics.beginFill( 0xFF0000 );
  cRed.graphics.drawCircle( 20, 15, 10);
  cRed.graphics.endFill(  );

  cGreen = new Sprite(  )
  cGreen.graphics.beginFill( 0x00FF00 );
  cGreen.graphics.drawCircle( 50, 15, 10);
  cGreen.graphics.endFill(  );

  cBlue = new Sprite(  );
  cBlue.graphics.beginFill( 0x0000FF );
  cBlue.graphics.drawCircle( 80, 15, 10);
  cBlue.graphics.endFill(  );

  cPink = new Sprite(  );
  cPink.graphics.beginFill( 0xFF00FF );
  cPink.graphics.drawCircle( 110, 15, 10);
  cPink.graphics.endFill(  );

  cBlack = new Sprite(  );
  cBlack.graphics.beginFill( 0x000000 );
  cBlack.graphics.drawCircle( 100, 100, 50);
  cBlack.graphics.endFill(  );

  addChild( cRed );
  addChild( cGreen );
  addChild( cBlue );
  addChild( cPink );
  addChild( cBlack );  

  cRed.addEventListener( MouseEvent.MOUSE_DOWN, drag );
  cRed.addEventListener( MouseEvent.MOUSE_UP, target );

  cGreen.addEventListener( MouseEvent.MOUSE_DOWN, drag );
  cGreen.addEventListener( MouseEvent.MOUSE_UP, target );

  cBlue.addEventListener( MouseEvent.MOUSE_DOWN, drag );
  cBlue.addEventListener( MouseEvent.MOUSE_UP, target );

  cPink.addEventListener( MouseEvent.MOUSE_DOWN, drag );
  cPink.addEventListener( MouseEvent.MOUSE_UP, target );
}

dragAndDrop();

(more…)