Development Flash ActionScript

package
{
    import flash.display.Sprite;
    import flash.events.MouseEvent;
    import flash.ui.Mouse;
    public class Main extends Sprite
    {
        private var circleMouse:Sprite = new Sprite();
        private var squareMouse:Sprite = new Sprite();
        private var currentMouse:Sprite = new Sprite();
        private var useSquareField:Sprite = new Sprite();
        private var useCircleField:Sprite = new Sprite();
        public function Main()
        {
            useSquareField.graphics.beginFill(0xFFFFFF, 1);
            useSquareField.graphics.drawRect(0, 0, 100, 100);
            useSquareField.graphics.endFill();
            useSquareField.name = "square";
            useSquareField.x = 200;
            useCircleField.graphics.beginFill(0xFFFFFF, 1);
            useCircleField.graphics.drawRect(0, 0, 100, 100);
            useCircleField.name = "circle";
            useCircleField.graphics.endFill();
            addChild(useCircleField);
            addChild(useSquareField);
            useCircleField.addEventListener(MouseEvent.ROLL_OVER, useCircle);
            useSquareField.addEventListener(MouseEvent.ROLL_OVER, useSquare);
            useCircleField.addEventListener(MouseEvent.ROLL_OUT, showMouse);
            useSquareField.addEventListener(MouseEvent.ROLL_OUT, showMouse);
            circleMouse.graphics.beginFill(0x00ff00, 1);
            circleMouse.graphics.drawCircle(0, 0, 5);
            circleMouse.graphics.endFill();
            currentMouse = new Sprite();
            squareMouse.graphics.beginFill(0xff0000, 1);
            squareMouse.graphics.drawRect(0, 0, 10, 10);
            squareMouse.graphics.endFill();
            this.stage.addEventListener(MouseEvent.MOUSE_MOVE, moveNewMouse);
        }
        private function moveNewMouse(mouseEvent:MouseEvent):void
        {
            currentMouse.x = mouseEvent.stageX + 5;
            currentMouse.y = mouseEvent.stageY + 5;
            mouseEvent.updateAfterEvent();
        }
        private function useSquare(mouseEvent:MouseEvent):void
        {
            Mouse.hide();
            addChild(squareMouse);
            currentMouse = squareMouse;
        }
        private function useCircle(mouseEvent:MouseEvent):void
        {
            Mouse.hide();
            addChild(circleMouse);
            currentMouse = circleMouse;
        }
        private function showMouse(mouseEvent:MouseEvent):void
        {
            if((mouseEvent.target as Sprite) == useSquareField)
            {
                removeChild(squareMouse);
            }
            else {
                removeChild(circleMouse);
            }
            currentMouse = new Sprite();
            Mouse.show();
        }
    }
}