public static void ToMouseCursor(this Sprite c)
        {
            // http://www.kirupa.com/forum/showthread.php?274754-bitmapData-transparency

            var u = new BitmapData(32, 32, transparent: true, fillColor: 0x00FFFFFFu);

            var adjustAlpha = new ColorTransform();

            //adjustAlpha.alphaMultiplier = 0.5;

            var m = new Matrix();

            u.draw(c, m, adjustAlpha, BlendMode.NORMAL);


            var data = new BitmapData[] {
                u
            };

            // X:\jsc.svn\examples\actionscript\FlashMouseCursorDataExperiment\FlashMouseCursorDataExperiment\ApplicationSprite.cs
            var cursor = new MouseCursorData
            {
                data = data
            };

            // http://stackoverflow.com/questions/16004940/error-2136-swf-contains-invalid-data
            //Error: Error #2136: The SWF file file:///X|/jsc.svn/examples/actionscript/svg/FlashSVGCursorExperiment/FlashSVGCursorExperiment/bin/Debug/staging/FlashSVGCursorExperiment.ApplicationSprite/web/FlashSVGCursorExperiment.ApplicationSprite.swf contains invalid data.
            //    at FlashSVGCursorExperiment::ApplicationSprite()[V:\web\FlashSVGCursorExperiment\ApplicationSprite.as:34]


            Mouse.registerCursor("c", cursor);
            Mouse.cursor = "c";
        }
        public ApplicationSprite()
        {
            // http://www.adobe.com/devnet/flash/articles/avoiding-mistakes-assets.html

            // http://help.adobe.com/en_US/FlashPlatform/reference/actionscript/3/flash/ui/MouseCursorData.html

            //Returns a Vector containing 8 cursor images
            Func <Vector <BitmapData> > makeCursorImages = () =>
            {
                var cursorData = new Vector <BitmapData>();

                var cursorShape = new Shape();
                cursorShape.graphics.beginFill(0xff5555, .75);
                cursorShape.graphics.lineStyle(1);

                //Graphics path data for an arrow
                var cursorPoints       = new double[] { 0, 8, 16, 8, 16, 0, 24, 12, 16, 24, 16, 16, 0, 16, 0, 8 };
                var cursorDrawCommands = new int[] { 1, 2, 2, 2, 2, 2, 2, 2 };



                cursorShape.graphics.drawPath(
                    cursorDrawCommands,
                    cursorPoints
                    );

                cursorShape.graphics.endFill();
                var transformer = new Matrix();

                //Rotate and draw the arrow shape to a BitmapData object for each of 8 frames
                for (var i = 0; i < 8; i++)
                {
                    var cursorFrame = new BitmapData(32, 32, true, 0);
                    cursorFrame.draw(cursorShape, transformer);
                    cursorData.push(cursorFrame);

                    transformer.translate(-15, -15);
                    transformer.rotate(0.785398163);
                    transformer.translate(15, 15);
                }
                return(cursorData);
            };


            // wtf? missing api? not defined in air?
            var mouseCursorData = new MouseCursorData();

            mouseCursorData.data      = makeCursorImages();
            mouseCursorData.frameRate = 1;

            Mouse.registerCursor("spinningArrow", mouseCursorData);
            Mouse.cursor = "spinningArrow";
        }
        public ApplicationSprite()
        {
            // http://www.adobe.com/devnet/flash/articles/avoiding-mistakes-assets.html

            // http://help.adobe.com/en_US/FlashPlatform/reference/actionscript/3/flash/ui/MouseCursorData.html

            //Returns a Vector containing 8 cursor images
            Func<Vector<BitmapData>> makeCursorImages = () =>
            {
                var cursorData = new Vector<BitmapData>();

                var cursorShape = new Shape();
                cursorShape.graphics.beginFill(0xff5555, .75);
                cursorShape.graphics.lineStyle(1);

                //Graphics path data for an arrow
                var cursorPoints = new double[] { 0, 8, 16, 8, 16, 0, 24, 12, 16, 24, 16, 16, 0, 16, 0, 8 };
                var cursorDrawCommands = new int[] { 1, 2, 2, 2, 2, 2, 2, 2 };



                cursorShape.graphics.drawPath(
                    cursorDrawCommands,
                    cursorPoints
                );

                cursorShape.graphics.endFill();
                var transformer = new Matrix();

                //Rotate and draw the arrow shape to a BitmapData object for each of 8 frames 
                for (var i = 0; i < 8; i++)
                {
                    var cursorFrame = new BitmapData(32, 32, true, 0);
                    cursorFrame.draw(cursorShape, transformer);
                    cursorData.push(cursorFrame);

                    transformer.translate(-15, -15);
                    transformer.rotate(0.785398163);
                    transformer.translate(15, 15);
                }
                return cursorData;
            };


            // wtf? missing api? not defined in air?
            var mouseCursorData = new MouseCursorData();
            mouseCursorData.data = makeCursorImages();
            mouseCursorData.frameRate = 1;

            Mouse.registerCursor("spinningArrow", mouseCursorData);
            Mouse.cursor = "spinningArrow";
        }
        public static void ToMouseCursor(this Sprite c)
        {
            // http://www.kirupa.com/forum/showthread.php?274754-bitmapData-transparency

            var u = new BitmapData(32, 32, transparent: true, fillColor: 0x00FFFFFFu);

            var adjustAlpha = new ColorTransform();

            //adjustAlpha.alphaMultiplier = 0.5;

            var m = new Matrix();

            u.draw(c, m, adjustAlpha, BlendMode.NORMAL);


            var data = new BitmapData[] {
                    u
                };

            // X:\jsc.svn\examples\actionscript\FlashMouseCursorDataExperiment\FlashMouseCursorDataExperiment\ApplicationSprite.cs
            var cursor = new MouseCursorData
            {
                data = data
            };

            // http://stackoverflow.com/questions/16004940/error-2136-swf-contains-invalid-data
            //Error: Error #2136: The SWF file file:///X|/jsc.svn/examples/actionscript/svg/FlashSVGCursorExperiment/FlashSVGCursorExperiment/bin/Debug/staging/FlashSVGCursorExperiment.ApplicationSprite/web/FlashSVGCursorExperiment.ApplicationSprite.swf contains invalid data.
            //    at FlashSVGCursorExperiment::ApplicationSprite()[V:\web\FlashSVGCursorExperiment\ApplicationSprite.as:34]


            Mouse.registerCursor("c", cursor);
            Mouse.cursor = "c";
        }