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"; }