套件 | 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()
方法。 在此方法中 (當滑鼠離開舞台時呼叫),會將新的mouseMove
偵聽程式物件傳遞給mouseOutHandler()
,該物件基本上會移除指標,好讓它不要留在舞台上。
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, 03:47 PM Z