这是flash player10.2新增的功能
package
{
import flash.display.Sprite;
import flash.display.BitmapData;
import flash.ui.Mouse;
import flash.ui.MouseCursorData;
import flash.events.MouseEvent;
/**
* ...
* @author aisajiajiao
*/
// native mouse cursors的例子,该例子需要支持flash player10.2以上的版本,属于flash player10.2新增的功能
//其实用之前的Mouse.hide() startDrag就能实现,10.2引入的功能性能很高
public class CursorExample extends Sprite
{
private var cursor:MouseCursorData;
private var bitmapdatas:Vector.<BitmapData>;
public function CursorExample()
{
cursor = new MouseCursorData();
//cursor的data属性是Vector.<BitmapData>类型
cursor.data = makeImage();
//使光标具有动画效果的帧速率
cursor.frameRate = 1;
//为实例赋予名字
Mouse.registerCursor("helloWorld",cursor);
//将默认鼠标形状设置为自定义的
Mouse.cursor = "helloWorld";
//添加事件侦听,在鼠标点击时将鼠标形状设置为默认
stage.addEventListener(MouseEvent.CLICK,onMouseClick);
}
private function onMouseClick(e:MouseEvent):void
{
Mouse.unregisterCursor("helloWorld");
}
private function makeImage():Vector.<BitmapData>
{
var sprite:Sprite = new Sprite();
sprite.graphics.lineStyle(1,0xff0000);
sprite.graphics.drawRoundRect(0,0,20,30,10,5);
sprite.graphics.endFill();
//由于操作系统限制,必须使用32*32或者更小的位图数据
var bitmapData:BitmapData = new BitmapData(32,32,true,0);
bitmapData.draw(sprite);
bitmapdatas = new Vector.<BitmapData>();
bitmapdatas.push(bitmapData);
return bitmapdatas;
}
}
}
2013.3.16:
最近发现有些情况下native mouse与Mouse.hide(),Mouse.show()结合使用时不同浏览器显示效果有明显的差异,在firefox里面能够显示出光标的到了chrome和IE里就不行,用的时候要注意。