包 | flash.ui |
类 | public final class Mouse |
继承 | Mouse Object |
语言版本: | ActionScript 3.0 |
运行时版本: | AIR 1.0, Flash Player 9 |
相关 API 元素
公共属性
属性 | 由以下参数定义 | ||
---|---|---|---|
constructor : Object
对类对象或给定对象实例的构造函数的引用。 | Object | ||
cursor : String [静态]
本机光标的名称。 | Mouse | ||
supportsCursor : Boolean [静态] [只读]
表示计算机或设备是否显示永久光标。 | Mouse | ||
supportsNativeCursor : Boolean [静态] [只读]
表示当前配置是否支持本机光标。 | Mouse |
公共方法
方法 | 由以下参数定义 | ||
---|---|---|---|
表示对象是否已经定义了指定的属性。 | Object | ||
[静态]
隐藏指针。 | Mouse | ||
表示 Object 类的实例是否在指定为参数的对象的原型链中。 | Object | ||
表示指定的属性是否存在、是否可枚举。 | Object | ||
[静态]
使用给定数据在给定名称下注册本机光标。 | Mouse | ||
设置循环操作动态属性的可用性。 | Object | ||
[静态]
显示指针。 | Mouse | ||
返回此对象的字符串表示形式,其格式设置遵守区域设置特定的约定。 | Object | ||
返回指定对象的字符串表示形式。 | Object | ||
[静态]
取消注册具有给定名称的本机光标。 | Mouse | ||
返回指定对象的原始值。 | Object |
属性详细信息
cursor | 属性 |
supportsCursor | 属性 |
supportsCursor:Boolean
[只读] 语言版本: | ActionScript 3.0 |
运行时版本: | Flash Player 10.1, AIR 2 |
表示计算机或设备是否显示永久光标。
在大多数桌面计算机上 supportsCursor
属性为 true
,而在大多数移动设备上为 false
。
注意:不管该属性是否为 true
都可调度鼠标事件。但是,鼠标事件的行为可能不同,具体取决于指针设备的物理特性。
实现
public static function get supportsCursor():Boolean
相关 API 元素
示例 ( 如何使用本示例 )
以下示例是一个简单测试,用于指示当前是否支持永久光标。测试该示例时,单击文本字段可查看属性值:
import flash.events.*; import flash.display.*; import flash.ui.Mouse; import flash.text.TextField; var supportsCursorTxt:TextField = new TextField(); supportsCursorTxt.width = 200; supportsCursorTxt.border = true; addChild(supportsCursorTxt); addEventListener (MouseEvent.CLICK, getScreenKeyboardType); function getScreenKeyboardType(e:MouseEvent):void{ supportsCursorTxt.text= "Supports Cursor is : " + String(flash.ui.Mouse.supportsCursor); }
下面的示例对不同的用户输入环境进行测试并做出响应。此示例假设它是与使用光标的游戏对应的代码的一部分。首先,此示例测试该环境是否支持使用光标。如果不支持,则测试该环境是否支持与笔针交互。如果支持,则插入代码来自定义游戏以使用笔针。如果此环境支持手指交互,则插入代码来自定义程序以满足特定的手指触摸需求。如果没有任何受支持的指针设备,则开发人员需要创建替代光标或某种交互方式,例如,按键。
if(Mouse.supportsCursor) { //Game acts as before } else { if(Capabilities.touchscreenType == TouchscreenType.STYLUS ){ //The Game has to change so that the character is chasing the location of the stylus as //it's dragged around. Some of the animations will have to change }else if(Capabilities.touchscreenType = TouchscreenType.FINGER){ //Same as above, except that the hit-area is larger for a finger. }else{ //There's no pointing device at all. The developer designs some sort of custom cursor to //be controlled with key presses or similar input } }
supportsNativeCursor | 属性 |
方法详细信息
hide | () | 方法 |
public static function hide():void
语言版本: | ActionScript 3.0 |
运行时版本: | AIR 1.0, Flash Player 9 |
隐藏指针。默认情况下,指针是可见的。
注意:无论以前调用了 Mouse.show()
多少次,Mouse.hide()
只需要调用一次。
相关 API 元素
registerCursor | () | 方法 |
public static function registerCursor(name:String, cursor:MouseCursorData):void
语言版本: | ActionScript 3.0 |
运行时版本: | Flash Player 10.2, AIR 1.5 |
使用给定数据在给定名称下注册本机光标。
参数
name:String | |
cursor:MouseCursorData |
show | () | 方法 |
public static function show():void
语言版本: | ActionScript 3.0 |
运行时版本: | AIR 1.0, Flash Player 9 |
显示指针。默认情况下,指针是可见的。
注意:无论以前调用了 Mouse.hide()
多少次,Mouse.show()
只需要调用一次。
相关 API 元素
unregisterCursor | () | 方法 |
示例 如何使用本示例
MouseExample.as
下例使用 MouseExample、SimpleButton、ButtonDisplayState 和 CustomCursor 类将一个简单的按钮放在舞台上。按钮具有自定义指针,并且在单击按钮时该按钮将会发生变化。这是由以下步骤完成的:
- 声明下列实例属性:CustomCursor 类型的
cursor
、CustomButton 类型的child
和 uint 类型的gutter
。 - 将
child
赋给新的 CustomButton 实例,将其 x 和 y 坐标设置为各 10 像素,然后将该实例添加到显示列表中。CustomButton 类覆盖 SimpleButton 中的downState
、upState
、overState
和hitTestState
属性。其中的每一个属性都实例化一个 ButtonDisplayState 对象,这些对象将绘制不同的正方形,具体取决于child
实例的状态。 child
实例然后用于添加MOUSE_OVER
事件侦听器和mouseOverHandler()
侦听器方法以及MOUSE_OUT
事件侦听器和关联的mouseOutHandler()
方法。- 事件侦听器的工作方式如下:
mouseOverHandler
:隐藏“普通”指针并添加MOUSE_MOVE
侦听器,该侦听器使用下述mouseMoveHandler()
处理鼠标移动。mouseOutHandler
:当鼠标移动到自定义按钮之外时,显示“普通”指针,删除MOUSE_MOVE
事件侦听器,并将自定义光标的可见性设置为false
。mouseMoveHandler
:指针移到哪里,自定义光标就跟到哪里,并将自定义光标的可见性设置为true
。
- 回到
MouseExample
构造函数中,将光标属性赋给新的 CustomCursor 对象,然后使用addChild()
将该对象添加到显示列表中。每当鼠标停留在child
之上时,CustomCursor 类会绘制一个几近黑色的小正方形来替代“普通”指针。 - 添加
MOUSE_LEAVE
类型的第四个事件侦听器以及关联的mouseLeaveHandler()
方法。在此方法(如果鼠标离开舞台则调用此方法)中,向mouseOutHandler()
传递一个新mouseMove
侦听器对象,该对象彻底删除指针,使其不留在舞台上。
package { import flash.display.Sprite; import flash.display.DisplayObject; import flash.ui.Mouse; import flash.events.*; public class MouseExample extends Sprite { private var cursor:CustomCursor; private var child:CustomButton; private var gutter:uint = 10; public function MouseExample() { child = new CustomButton(); child.x = gutter; child.y = gutter; addChild(child); child.addEventListener(MouseEvent.MOUSE_OVER, mouseOverHandler); child.addEventListener(MouseEvent.MOUSE_OUT, mouseOutHandler); cursor = new CustomCursor(); addChild(cursor); stage.addEventListener(Event.MOUSE_LEAVE, mouseLeaveHandler); } private function mouseOverHandler(event:MouseEvent):void { trace("mouseOverHandler"); Mouse.hide(); child.addEventListener(MouseEvent.MOUSE_MOVE, mouseMoveHandler); } private function mouseOutHandler(event:MouseEvent):void { trace("mouseOutHandler"); Mouse.show(); child.removeEventListener(MouseEvent.MOUSE_MOVE, mouseMoveHandler); cursor.visible = false; } private function mouseMoveHandler(event:MouseEvent):void { trace("mouseMoveHandler"); cursor.x = event.localX; cursor.y = event.localY; event.updateAfterEvent(); cursor.visible = true; } private function mouseLeaveHandler(event:Event):void { trace("mouseLeaveHandler"); mouseOutHandler(new MouseEvent(MouseEvent.MOUSE_MOVE)); } } } import flash.display.Shape; import flash.display.SimpleButton; class CustomButton extends SimpleButton { var upColor:uint = 0xFFCC00; var overColor:uint = 0xCCFF00; var downColor:uint = 0x00CCFF; var size:uint = 80; public function CustomButton() { downState = new ButtonDisplayState(downColor, size+10); overState = new ButtonDisplayState(overColor, size); upState = new ButtonDisplayState(upColor, size); hitTestState = new ButtonDisplayState(upColor, size); } } class ButtonDisplayState extends Shape { var bgColor:uint; var size:uint; public function ButtonDisplayState(bgColor:uint, size:uint) { this.bgColor = bgColor; this.size = size; draw(); } private function draw():void { graphics.clear(); graphics.beginFill(bgColor); graphics.drawRect(0, 0, size, size); graphics.endFill(); } } class CustomCursor extends Shape { var bgColor:uint = 0x333333; var size:uint = 10; public function CustomCursor() { visible = false; draw(); } private function draw():void { graphics.clear(); graphics.beginFill(bgColor); graphics.drawRect(0, 0, size, size); graphics.endFill(); } }
Tue Jun 12 2018, 11:04 AM Z