Flex【原创】利用BitmapData设置光标样式

  这几天突然发现传统用cursorManager.setCursor(...);设置光标样式会有顿卡的感觉。

  现在可以利用BitmapData实现此功能,并且一点不卡,性能明显要好得多,不解释,上源码,你懂的!

  Cursor类:

  

View Code
package
{
    import flash.display.Bitmap;
    import flash.display.BitmapData;
    import flash.display.Loader;
    import flash.events.Event;
    import flash.net.URLRequest;
    import flash.ui.Mouse;
    import flash.ui.MouseCursorData;

    public class Cursor
    {
        private var _cursor:Array;
        
        private var loader:Loader;
        
        public function Cursor(cursor:Array)
        {
            this.cursor = cursor;
        }

        public function get cursor():Array
        {
            return _cursor;
        }

        public function set cursor(value:Array):void
        {
            _cursor = value;
            if(_cursor && _cursor.length == 2)
            {
                loader = new Loader();
                loader.contentLoaderInfo.addEventListener(Event.COMPLETE,onComplete);
                loader.load(new URLRequest(_cursor[1]));
            }
        }
        
        protected function onComplete(event:Event):void
        {
            var cursorData : Vector.<BitmapData> = new Vector.<BitmapData>();
            cursorData .push(Bitmap(event.target.content).bitmapData);
            var mouseCursorData:MouseCursorData = new MouseCursorData();
            mouseCursorData.data = cursorData;
            Mouse.registerCursor(_cursor[0],mouseCursorData);
            Mouse.cursor = _cursor[0];
        }

    }
}

  调用:传入一个数组,索引0位置为cursor名称,索引1位置为cursor图片路径

   new Cursor(["newCursor",Config.CURSOR_BLUE]);

原文地址:https://www.cnblogs.com/loveFlex/p/2529098.html