2009년 12월 16일 수요일

HandMouseCursor

package nhn.util
{
    import flash.display.*;
    import flash.events.*;
    import flash.ui.*;
    import flash.utils.*;

    public class HandMouseCursor extends Object
    {
        private var cursors:Dictionary;
        private var currentCursor:Object;
        private var stage:Object;
        private static var thisObj:HandMouseCursor;

        public function HandMouseCursor() : void
        {
            return;
        }// end function

        public function showCursor(param1:String) : void
        {
            var _loc_2:* = undefined;
            _loc_2 = param1;
            if (cursors[_loc_2] != null && cursors[_loc_2] != undefined)
            {
                currentCursor = cursors[_loc_2];
                Mouse.hide();
                currentCursor.x = stage.mouseX;
                currentCursor.y = stage.mouseY;
                stage.addChild(currentCursor);
                trace("??", stage.hasEventListener(MouseEvent.MOUSE_MOVE), stage);
                if (!stage.hasEventListener(MouseEvent.MOUSE_MOVE))
                {
                    stage.addEventListener(MouseEvent.MOUSE_MOVE, moveMouse);
                }
            }
            return;
        }// end function

        public function removeCursor(param1:String) : Boolean
        {
            var _loc_2:* = undefined;
            _loc_2 = param1;
            if (cursors == null)
            {
                return false;
            }
            if (cursors[_loc_2] != null && cursors[_loc_2] != undefined)
            {
                cursors[_loc_2] = null;
                delete cursors[_loc_2];
                return true;
            }
            return false;
        }// end function

        private function moveMouse(event:MouseEvent) : void
        {
            Mouse.hide();
            currentCursor.x = stage.mouseX;
            currentCursor.y = stage.mouseY;
            event.updateAfterEvent();
            return;
        }// end function

        public function addCursor(param1:Sprite, param2:String) : Boolean
        {
            var _loc_3:* = undefined;
            var _loc_4:* = undefined;
            _loc_3 = param2;
            _loc_4 = param1;
            if (cursors == null)
            {
                cursors = new Dictionary();
            }
            if (cursors[_loc_3] == null || cursors[_loc_3] == undefined)
            {
                _loc_4.mouseEnabled = false;
                _loc_4.mouseChildren = false;
                _loc_4.enabled = false;
                cursors[_loc_3] = _loc_4;
                return true;
            }
            return false;
        }// end function

        public function hideCursor(param1:String = "") : void
        {
            var _loc_2:* = undefined;
            var _loc_3:* = undefined;
            trace("hide");
            _loc_2 = currentCursor;
            _loc_3 = param1;
            if (_loc_3 != "")
            {
                _loc_2 = cursors[_loc_3];
            }
            if (_loc_2 != null && _loc_2 != undefined)
            {
                Mouse.show();
                if (currentCursor != null && currentCursor.parent == stage)
                {
                    stage.removeChild(currentCursor);
                }
            }
            if (stage.hasEventListener(MouseEvent.MOUSE_MOVE))
            {
                stage.removeEventListener(MouseEvent.MOUSE_MOVE, moveMouse);
            }
            return;
        }// end function

        public function addStage(param1) : Boolean
        {
            if (stage == null || stage == undefined)
            {
                stage = param1;
                return true;
            }
            return false;
        }// end function

        public static function getInstance() : HandMouseCursor
        {
            if (thisObj == null)
            {
                thisObj = new HandMouseCursor;
            }
            return thisObj;
        }// end function

    }
}

댓글 없음:

댓글 쓰기