flash.ui
public final class Mouse
继承Mouse Inheritance Object

语言版本: ActionScript 3.0
运行时版本: AIR 1.0 Flash Player 9

Mouse 类的方法用于隐藏和显示鼠标指针,或将指针设置为特定样式。Mouse 类是不通过构造函数即可访问其属性和方法的顶级类。

查看示例

另请参见

flash.events.MouseEvent
Capturing mouse input


公共属性
 属性定义方
 Inheritedconstructor : Object
对类对象或给定对象实例的构造函数的引用。
Object
  cursor : String
[静态] 设置鼠标光标。
Mouse
 Inheritedprototype : Object
[静态] 对类或函数对象的原型对象的引用。
Object
公共方法
 方法定义方
 Inherited
指示对象是否已经定义了指定的属性。
Object
  
[静态] 隐藏指针。
Mouse
 Inherited
指示 Object 类的实例是否在指定为参数的对象的原型链中。
Object
 Inherited
指示指定的属性是否存在、是否可枚举。
Object
 Inherited
设置循环操作动态属性的可用性。
Object
  
[静态] 显示指针。
Mouse
 Inherited
返回指定对象的字符串表示形式。
Object
 Inherited
返回指定对象的原始值。
Object
属性详细信息
cursor属性
cursor:String  [读写]

语言版本: ActionScript 3.0
运行时版本: Flash Player 10, AIR 1.5

设置鼠标光标。

默认值为 flash.ui.MouseCursor.AUTO

若要设置此属性的值,请使用下列字符串值:

字符串值Description
flash.ui.MouseCursor.AUTO 鼠标光标将根据鼠标下的对象自动更改。
flash.ui.MouseCursor.ARROW 鼠标光标将是一个箭头。
flash.ui.MouseCursor.BUTTON 鼠标光标将是一只点击按钮的手。
flash.ui.MouseCursor.HAND 鼠标光标将是一只正在拖动的手。
flash.ui.MouseCursor.IBEAM 鼠标光标将呈工字形。



实现
    public static function get cursor():String
    public function set cursor(value:String):void

引发
ArgumentError — 如果设置的值不是 flash.ui.MouseCursor 的成员。

另请参见

方法详细信息
hide()方法
public static function hide():void

语言版本: ActionScript 3.0
运行时版本: AIR 1.0 Flash Player 9

隐藏指针。默认情况下,指针是可见的。

注意:无论之前调用了多少次 Mouse.show()Mouse.hide() 只需要调用一次。

另请参见

show()方法 
public static function show():void

语言版本: ActionScript 3.0
运行时版本: AIR 1.0 Flash Player 9

显示指针。默认情况下,指针是可见的。

注意:无论之前调用了多少次 Mouse.hide()Mouse.show() 只需要调用一次。

另请参见

示例 如何使用示例
MouseExample.as

下例使用 MouseExample、SimpleButton、ButtonDisplayState 和 CustomCursor 类将一个简单的按钮放在舞台上。按钮具有自定义指针,并且在单击按钮时该按钮将会发生变化。这是由以下步骤完成的:
  1. 声明下列实例属性:CustomCursor 类型的 cursor、CustomButton 类型的 child 和 uint 类型的 gutter
  2. child 赋给新的 CustomButton 实例,将其 xy 坐标设置为各 10 像素,然后将该实例添加到显示列表中。CustomButton 类覆盖 SimpleButton 中的 downStateupStateoverStatehitTestState 属性。其中的每一个属性都实例化一个 ButtonDisplayState 对象,这些对象将绘制不同的正方形,具体取决于 child 实例的状态。
  3. child 实例然后用于添加 MOUSE_OVER 事件侦听器和 mouseOverHandler() 侦听器方法以及 MOUSE_OUT 事件侦听器和关联的 mouseOutHandler() 方法。
  4. 事件侦听器的工作方式如下:
    • mouseOverHandler:隐藏“普通”指针并添加 MOUSE_MOVE 侦听器,该侦听器使用下述 mouseMoveHandler() 处理鼠标移动。
    • mouseOutHandler:当鼠标移动到自定义按钮之外时,显示“普通”指针,删除 MOUSE_MOVE 事件侦听器,并将自定义光标的可见性设置为 false
    • mouseMoveHandler:指针移到哪里,自定义光标就跟到哪里,并将自定义光标的可见性设置为 true
  5. 回到 MouseExample 构造函数中,将光标属性赋给新的 CustomCursor 对象,然后使用 addChild() 将该对象添加到显示列表中。每当鼠标停留在 child 之上时,CustomCursor 类会绘制一个几近黑色的小正方形来替代“普通”指针。
  6. 添加 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();
    }
}