package { import flash.display.*; import flash.events.*; import flash.net.*; public class Experiment extends MovieClip { public var up_btn:MovieClip; public var down_btn:MovieClip; public var center_btn:MovieClip; public var left_btn:MovieClip; public var right_btn:MovieClip; public var pointer_mc:MovieClip; var pointer_target:int = 275; var pointer_target_vrt:int = 130; public function Experiment() { up_btn.addEventListener(MouseEvent.MOUSE_DOWN, move_up,false,0,true); left_btn.addEventListener(MouseEvent.MOUSE_DOWN, move_left,false,0,true); right_btn.addEventListener(MouseEvent.MOUSE_DOWN, move_right,false,0,true); center_btn.addEventListener(MouseEvent.MOUSE_DOWN, move_center,false,0,true); down_btn.addEventListener(MouseEvent.MOUSE_DOWN, move_down,false,0,true); pointer_mc.addEventListener(MouseEvent.MOUSE_DOWN, grab,false,0,true); pointer_mc.addEventListener(MouseEvent.MOUSE_UP, drop,false,0,true); } function move_up (e:MouseEvent):void { if(pointer_target_vrt > 48) { pointer_target_vrt = pointer_mc.y - 25; e.target.addEventListener(Event.ENTER_FRAME,dotMoverVrt,false,0,true); } } function move_right (e:MouseEvent):void { if(pointer_target < 510) { pointer_target = pointer_mc.x + 50; e.target.addEventListener(Event.ENTER_FRAME,dotMover,false,0,true); } } function move_left (e:MouseEvent):void { if(pointer_target > 40) { pointer_target = pointer_mc.x - 50; e.target.addEventListener(Event.ENTER_FRAME,dotMover,false,0,true); } } function move_center (e:MouseEvent):void { pointer_target = 275; e.target.addEventListener(Event.ENTER_FRAME,dotMover,false,0,true); pointer_target_vrt = 130; e.target.addEventListener(Event.ENTER_FRAME,dotMoverVrt,false,0,true); } function move_down (e:MouseEvent):void { if(pointer_target_vrt < 200) { pointer_target_vrt = pointer_mc.y + 25; e.target.addEventListener(Event.ENTER_FRAME,dotMoverVrt,false,0,true); } } function dotMover (e:Event):void { var diff:Number = 0; diff = pointer_target - pointer_mc.x; pointer_mc.x = pointer_mc.x + diff / 6; if (diff==0) { e.target.removeEventListener(Event.ENTER_FRAME,dotMover); } } function dotMoverVrt (e:Event):void { var diff:Number = 0; diff = pointer_target_vrt - pointer_mc.y; pointer_mc.y = pointer_mc.y + diff / 6; if (diff==0) { e.target.removeEventListener(Event.ENTER_FRAME,dotMoverVrt); } } function grab (e:MouseEvent):void { e.target.addEventListener(MouseEvent.MOUSE_DOWN,dragFunct); } function drop (e:MouseEvent):void { e.target.addEventListener(MouseEvent.MOUSE_UP,releaseDragFunct); } function dragFunct(e:MouseEvent):void { e.target.startDrag(); pointer_target=e.target.x pointer_target_vrt=e.target.y e.target.removeEventListener(Event.ENTER_FRAME,dragFunct); } function releaseDragFunct(e:MouseEvent):void { e.target.stopDrag(); e.target.removeEventListener(Event.ENTER_FRAME,dragFunct); } } }