Flex自定义MouseCursor
来源:互联网 发布:免费双色球缩水软件 编辑:程序博客网 时间:2024/06/06 18:25
1.FlashPlayer10.2以后自带的定义方式:
转自:http://www.freeliver.net/?p=167
一、关于MouseCursor
这个以前的做法貌似都是直接做的鼠标跟随,因为原来的flash.ui.Mouse这个类就只有两个方法:hide();show();你要注册本地的cursor是不可能的,不过flexsdk中有很简单的api来注册本地的cursor,也没有看源码,可能也是鼠标跟随吧。
现在来看这个10.2里面的新api接口,这里涉及的类有:
flash.ui.Mouse,flash.ui.MouseCursorData,flash.ui.MouseCurosr
以前觉得flash.ui是名不副实的,都没有真正能够操作ui的接口嘛,现在10.2有了改观。
可以通过Mouse.cursor= “cursor style name” 来指定一个cursor,在10.0.0到10.2应该都是支持的,可以定义基本的一些,这些cursor在MouseCursor常量中有定义:
public static const ARROW:String = "arrow"
public static const AUTO:String = “auto”
public static const BUTTON:String = “button”
public static const HAND:String = “hand”
public static const IBEAM:String = “ibeam”
然后你如果要定义本地支持的cursor,应该是:
1. 使用Mouse.supportsNativeCursor判断是否支持此api,这样就有比较好的兼容性了。
2.实例化一个MouseCursorData对象,此对象是cursor的源
此对象有两个属性:
MouseCursorData.data = Vector.<BitmapData>
Vector.<BitmapData>貌似也是10以后的新语法了,其实就是像java里面的集合,定义的集合只能接受BitmapData元素,所以还必须实例化或者得到一个BitmapData对象(无论是自己使用绘图api画一个,还是来自外部图片文件),其像素最大不能超过32x32pixels ,超过了就无效并且报出运行时错误,所以编译的时候根本没错。
3. 使用Mouse.registerCursor(‘cursor name’,MouseCursorData); 注册一个本地的cursor。
4. Mouse.cursor = “刚才指定的cursor name”
5. 切换的话,可以先注销刚才的cursor:Mouse.unregisterCursor(name:String);
到此自定义鼠标手势就ok了:
官方有一个例子是自己画的鼠标手势,
附一个来自外部图片的:
package{import flash.display.Sprite;import flash.events.Event;import flash.text.TextField;import flash.ui.*;import flash.display.Bitmap;import flash.display.BitmapData;import flash.display.Shape;public class Main extends Sprite{[Embed(source="./assets/2.jpg")]private var iconClass:Class;private var iconImg:Bitmap;public function Main():void{this.iconImg = new iconClass() as Bitmap;if(stage){this.init();}else{this.addEventListener(Event.ADDED_TO_STAGE,init);}}protected function init(e:Event = null):void{var textfield:TextField = new TextField();textfield.text = “”;textfield.x = this.stage.stageWidth/2;textfield.y = this.stage.stageHeight/2;this.addChild(textfield);if(Mouse.supportsNativeCursor){var mouseImage:Vector.<BitmapData> = new Vector.<BitmapData>();mouseImage.push(this.iconImg.bitmapData);var bitmapData:BitmapData = new BitmapData(32,32,true,0);var shape:Shape = new Shape();shape.graphics.beginFill(0xFF0000,.85);shape.graphics.drawRect(0,0,32,32);shape.graphics.endFill();bitmapData.draw(shape);//mouseImage.push(bitmapData);var mouseCursorData:MouseCursorData = new MouseCursorData();mouseCursorData.frameRate = 1;mouseCursorData.data = mouseImage;Mouse.registerCursor(‘testCursor’,mouseCursorData);Mouse.cursor = ‘testCursor’;textfield.text = ‘支持本地话的鼠标!’;}else{textfield.text = ‘不支持本地化的鼠标!’;}}}}
2.通过跟随鼠标动画的方式来定义
转自:http://bbs.9ria.com/thread-69184-1-1.html
- Flex自定义MouseCursor
- 谈谈flex自定义组件
- flex中自定义 Cursor
- Flex开发自定义控件
- Flex中自定义事件
- flex自定义分页控件
- flex自定义事件
- Flex 自定义事件
- flex自定义右键
- Flex自定义组件
- Flex中自定义事件
- 自定义Flex组件(2)
- 自定义FLEX组件(3)
- flex 自定义事件
- Flex 自定义拖放
- Flex 自定义组件
- Flex自定义事件
- flex自定义组件
- Memory usage of Java objects: general guide
- jsp filter 过滤器
- Resize a UIImage the right way
- How to hide uitabbarcontroller
- 减少用户的思考
- Flex自定义MouseCursor
- 核心模组的载入与移除: insmod, modprobe, rmmod
- Weka -- 数据格式基本介绍
- OpenGL中的Alpha测试,深度测试,模板测试,裁减测试
- 只有9K的小闹铃C#初学者
- HTML标签大全
- 分析日志的一个python程序
- SQL Server 2005中NTEXT与NVARCHAR(MAX)
- linux mysql 基本操作命令