First off... I'm NOT a programmer or game developer, nor do I have extensive knowledge of the ways that a Flash app works, so I've started this thread PURELY to ask for input from those who might know or understand it more than me, and would like to share their opinions with those of us who've been anxiously awaiting some form of relief from our stuttering swing meters.
During a recent websearch, I came across the new Beta Flash 10.2 that was recently released.
Some excerpts from Introducing Flash Player 10.2 Beta! by Thibault Imbert
- Internet Explorer 9 hardware accelerated rendering support
– Flash Player takes advantage of hardware accelerated graphics in Internet
Explorer 9, utilizing hardware rendering surfaces to improve graphics
performance and enable seamless composition.
- Stage Video hardware acceleration – A new method for video
playback in Flash Player allows developers to leverage complete hardware
acceleration of the video rendering pipeline, enabling best-in-class playback
performance. Stage Video can decrease processor usage by up to 85% and enables
higher frame rates, reduced memory usage, and greater pixel fidelity and
quality.
- Native custom mouse
cursors – Developers can define
custom native mouse cursors, enabling user experience enhancements and
improving performance.
- Support for full screen mode with multiple monitors
– Full screen content will remain in full-screen on secondary monitors,
allowing users to watch full-screen content while working on another
display.
The "Stage Video" acceleration looks like it could be promising, but I'd like to focus comments/replies on the "Native custom mouse cursors" aspect of the 10.2 Beta.
Thibault goes on to describe this new feature...
"But that is not all, we added another nice feature related to cursors. A
highly requested
feature. The idea is simple, no more Mouse.hide() or onMouseMove handler or
startDrag to have a custom cursor. You can now directly work at the OS level and
assign your own custom native bitmap-based cursors. Here is a
little code sample which illustrates the idea:
// we create a MouseCursorData object
var cursorData:MouseCursorData = new MouseCursorData("myCursor");
// we specify the hotspot
cursorData.hotSpot = new Point(15,15);
// we pass the cursor bitmap to a BitmapData Vector
var bitmapDatas:Vector.<BitmapData> = new Vector.<BitmapData>(1, true);
// we create the bitmap cursor
var bitmap:Bitmap = new zoomCursor();
// we pass it to the bitmapDatas vector
bitmapDatas[0] = bitmap.bitmapData;
// we assign the bitmap to the MouseCursor object
cursorData.data = bitmapDatas;
// we register the MouseCursorData to the Mouse
Mouse.registerCursor(cursorData);
// whenever we neeed to show it, we pass the alias to the existing cursor property
Mouse.cursor = "myCursor";
Pretty cool? But wait, there is even better, you can also pass a series of
BitmapData objects, then pass a specific frame rate and get automatic native
animated cursor:
// we create a MouseCursorData object
var cursorData:MouseCursorData = new MouseCursorData("myAnimatedCursor");
// we specify the hotspot
cursorData.hotSpot = new Point(15,15);
// we pass the cursors bitmap to a BitmapData Vector
var bitmapDatas:Vector.<BitmapData> = new Vector.<BitmapData>(3, true);
// we create the bitmap cursor frames
var frame1Bitmap:Bitmap = new frame1();
var frame2Bitmap:Bitmap = new frame2();
var frame3Bitmap:Bitmap = new frame3();
// we pass it to the bitmapDatas vector
bitmapDatas[0] = frame1Bitmap.bitmapData;
bitmapDatas[1] = frame2Bitmap.bitmapData;
bitmapDatas[2] = frame3Bitmap.bitmapData;
// we assign the bitmap to the MouseCursor object
cursorData.data = bitmapDatas;
// we register the MouseCursorData to the Mouse
Mouse.registerCursor(cursorData);
// we just pas a frame rate
cursorData.frameRate = 1;
// whenever we neeed to show it, we pass the alias to the existing cursor property
Mouse.cursor = "myAnimatedCursor";
Very simple, but so cool. Game and RIA developers will love this feature."
Why am I excited by this "simple" feature? When we hover over the swing meter, our cursor changes to the "swing meter cursor". Depending on how this cursor is currently coded, and how it could be coded in the future (to take advantage of 10.2's new bit-map based cursor recognition) could be the difference between our current meters and much smoother ones. Couldn't it?