Actionscript Code:
package
{
import flash.display.Sprite;
import flash.events.Event;
import flash.events.KeyboardEvent;
import flash.events.MouseEvent;
import gs.TweenLite;
/**
* ...
* @author srs
*/
public class Main extends Sprite
{
private var green:Sprite;
private var red:Sprite;
public function Main():void
{
if (stage) init();
else addEventListener(Event.ADDED_TO_STAGE, init);
}
private function init(e:Event = null):void
{
removeEventListener(Event.ADDED_TO_STAGE, init);
// entry point
green = makeCircle(0x00ff00);
green.x = 10;
green.y = 100;
addChild(green);
green.addEventListener(MouseEvent.MOUSE_DOWN, drag);
green.addEventListener(MouseEvent.MOUSE_UP, undrag);
red = makeCircle(0xff0000);
red.x = 200;
red.y = 100;
addChild(red);
red.addEventListener(MouseEvent.MOUSE_DOWN, drag);
red.addEventListener(MouseEvent.MOUSE_UP, undrag);
stage.addEventListener(KeyboardEvent.KEY_DOWN, swap);
}
private function swap(e:Event = null):void {
TweenLite.to(green, 1, { x:red.x, y:red.y } );
TweenLite.to(red, 1, { x:green.x, y:green.y } );
}
private function drag(e:Event):void {
Sprite(e.currentTarget).startDrag();
}
private function undrag(e:Event):void {
Sprite(e.currentTarget).stopDrag();
}
private function makeCircle(color:uint):Sprite {
var s:Sprite = new Sprite();
s.graphics.beginFill(color);
s.graphics.drawCircle(0, 0, 10);
s.graphics.endFill();
return s;
}
}
}