package com.cursormanager.cursors { import flash.display.Sprite; import flash.ui.Mouse; import flash.events.Event; public class Cursor extends Sprite { private var enabled:Boolean = false; public function get isEnabled():Boolean { return enabled; } public function Cursor() { addEventListener( Event.ADDED_TO_STAGE, onAddedToStage ); addEventListener( Event.REMOVED_FROM_STAGE, onRemovedFromStage ); } public function enable():void { if ( enabled ) return; enabled = true; initialize(); } public function disable():void { if ( !enabled ) return; enabled = false; finalize(); } protected function initialize():void { Mouse.show(); } protected function finalize():void { Mouse.hide(); } private function onAddedToStage( event:Event ):void { enable(); } private function onRemovedFromStage( event:Event ):void { disable(); } } }