package { import flash.display.Sprite; import flash.events.Event; import flash.events.MouseEvent; public class Cursors extends Sprite { private var _img:Sprite; private var _imgAdded:Boolean = false; private var _bg:Sprite; //- CONSTRUCTOR ------------------------------------------------------------------------------------------- public function Cursors() { _bg = new Sprite(); _bg.graphics.beginFill(0xffffff, 0); _bg.graphics.drawRect(0,0,200,200); _bg.graphics.endFill(); _bg.mouseChildren = false; _bg.buttonMode = false; _bg.buttonMode = true; } //- PUBLIC METHODS ---------------------------------------------------------------------------------------- public function start():void{ addEventListener(Event.ENTER_FRAME, onThisMouseMove); stage.addEventListener(MouseEvent.MOUSE_DOWN, onThisMouseDown); stage.addEventListener(MouseEvent.MOUSE_UP, onThisMouseUp); this.x = stage.mouseX - 100; this.y = stage.mouseY - 100; if(!_imgAdded){ addChild(_bg); _imgAdded = true; } } public function stop():void{ if(_imgAdded){ removeChild(_bg); _imgAdded = false; } removeEventListener(Event.ENTER_FRAME, onThisMouseMove); stage.removeEventListener(MouseEvent.MOUSE_DOWN, onThisMouseDown); stage.removeEventListener(MouseEvent.MOUSE_UP, onThisMouseUp); } //- EVENT HANDLERS --------------------------------------------------------------------------------------- private function onThisMouseDown(e:MouseEvent):void{ this.stop(); } private function onThisMouseUp(e:MouseEvent):void{ this.start(); } private function onThisMouseMove(e:Event):void{ this.x = stage.mouseX - 100; this.y = stage.mouseY - 100; } } }