套件 | flash.events |
類別 | public class KeyboardEvent |
繼承 | KeyboardEvent Event Object |
語言版本: | ActionScript 3.0 |
執行階段版本: | AIR 1.0, Flash Player 9, Flash Lite 4 |
KeyboardEvent.KEY_DOWN
和 KeyboardEvent.KEY_UP
由於按鍵與特定字元之間的對應會因裝置和作業系統而有所不同,因此,請使用 TextEvent 事件類型來處理字元輸入。
若要對按鍵事件進行全域偵聽,請在捕捉階段與目標或反昇階段偵聽舞台。
更多範例
Handling keyboard events
Understanding the keyCode and charCode properties
Understanding KeyboardEvent precedence
相關 API 元素
屬性 | 定義自 | ||
---|---|---|---|
altKey : Boolean
在 Windows 中,指出 Alt 鍵為作用中 (true) 或已停用 (false);在 Mac OS 中,指出 Option 鍵是否為作用中。 | KeyboardEvent | ||
bubbles : Boolean [唯讀]
指出事件是否為反昇事件。 | Event | ||
cancelable : Boolean [唯讀]
指出是否可避免與事件相關聯的行為指令。 | Event | ||
charCode : uint
包含按下或放開之按鍵的字元碼值。 | KeyboardEvent | ||
commandKey : Boolean
指出 Command 鍵為作用中 (true) 或已停用 (false)。 | KeyboardEvent | ||
constructor : Object
類別物件的參照或是特定物件實體的建構函數。 | Object | ||
controlKey : Boolean
指出 Control 鍵為作用中 (true) 或停用 (false)。 | KeyboardEvent | ||
ctrlKey : Boolean
在 Windows 和 Linux 中,指出 Ctrl 鍵為作用中 (true) 或已停用 (false);在 Mac OS 中,指出 Ctrl 鍵或 Command 鍵是否為作用中。 | KeyboardEvent | ||
currentTarget : Object [唯讀]
正主動使用事件偵聽程式處理 Event 物件的物件。 | Event | ||
eventPhase : uint [唯讀]
事件流程中的目前階段。 | Event | ||
keyCode : uint
按下或放開之按鍵的按鍵碼值。 | KeyboardEvent | ||
keyLocation : uint
指出鍵盤上的按鍵位置。 | KeyboardEvent | ||
shiftKey : Boolean
指出 Shift 輔助按鍵為作用中 (true) 或停用 (false)。 | KeyboardEvent | ||
target : Object [唯讀]
事件目標。 | Event | ||
type : String [唯讀]
事件類型。 | Event |
方法 | 定義自 | ||
---|---|---|---|
KeyboardEvent(type:String, bubbles:Boolean = true, cancelable:Boolean = false, charCodeValue:uint = 0, keyCodeValue:uint = 0, keyLocationValue:uint = 0, ctrlKeyValue:Boolean = false, altKeyValue:Boolean = false, shiftKeyValue:Boolean = false, controlKeyValue:Boolean = false, commandKeyValue:Boolean = false)
建立包含鍵盤事件特定資訊的 Event 物件。 | KeyboardEvent | ||
[覆寫]
建立 KeyboardEvent 物件的副本,並將每個屬性的值設為符合原始物件的屬性值。 | KeyboardEvent | ||
公用程式函數,可用來實作自訂 ActionScript 3.0 Event 類別中的 toString() 方法。 | Event | ||
指出物件是否有已定義的指定屬性。 | Object | ||
檢查是否已經對事件呼叫 preventDefault() 方法。 | Event | ||
指出 Object 類別的實體是否位於指定為參數的物件原型鏈中。 | Object | ||
如果可以取消事件的預設行為指令,則取消該行為指令。 | Event | ||
指出指定的屬性是否存在,以及是否可列舉。 | Object | ||
為迴圈作業設定動態屬性的可用性。 | Object | ||
避免處理事件流程中,目前節點以及任何後續節點中的任何事件偵聽程式。 | Event | ||
避免處理接續在事件流程中的目前節點之後,後續節點中的任何事件偵聽程式。 | Event | ||
傳回代表此物件的字串,根據地區特定慣例進行格式化。 | Object | ||
[覆寫]
傳回包含 KeyboardEvent 物件所有屬性的字串。 | KeyboardEvent | ||
指出如果尚未修改顯示清單,便會在處理完此事件之後才顯示。
| KeyboardEvent | ||
會傳回指定之物件的基本值。 | Object |
常數 | 定義自 | ||
---|---|---|---|
KEY_DOWN : String = "keyDown" [靜態]
KeyboardEvent.KEY_DOWN 常數會定義 keyDown 事件物件的 type 屬性值。 | KeyboardEvent | ||
KEY_UP : String = "keyUp" [靜態]
KeyboardEvent.KEY_UP 常數會定義 keyUP 事件物件的 type 屬性值。 | KeyboardEvent |
altKey | 屬性 |
charCode | 屬性 |
charCode:uint
語言版本: | ActionScript 3.0 |
執行階段版本: | AIR 1.0, Flash Player 9, Flash Lite 4 |
包含按下或放開之按鍵的字元碼值。 字元碼值是英文鍵盤值。 例如,如果按 Shift+3,charCode
便是日文鍵盤上的 #,如果按 Shift+2,則 charCode
為 德文鍵盤上的 @ (而非 "),只是它在英文鍵盤上。
注意:輸入法編輯器 (IME) 正在執行時,charCode
無法報告正確的字元碼。
實作
public function get charCode():uint
public function set charCode(value:uint):void
commandKey | 屬性 |
controlKey | 屬性 |
ctrlKey | 屬性 |
keyCode | 屬性 |
keyLocation | 屬性 |
keyLocation:uint
語言版本: | ActionScript 3.0 |
執行階段版本: | AIR 1.0, Flash Player 9, Flash Lite 4 |
指出鍵盤上的按鍵位置。 這有助於區別鍵盤上出現一次以上的按鍵。 例如,您可以根據這個屬性的值來區別左側和右側的 Shift 鍵:KeyLocation.LEFT
代表左側,KeyLocation.RIGHT
則代表右側。 另一個範例說明如何區別標準鍵盤上的數字按鍵 (KeyLocation.STANDARD
),以及數字鍵台上的數字按鍵 (KeyLocation.NUM_PAD
)。
實作
public function get keyLocation():uint
public function set keyLocation(value:uint):void
shiftKey | 屬性 |
KeyboardEvent | () | 建構函式 |
public function KeyboardEvent(type:String, bubbles:Boolean = true, cancelable:Boolean = false, charCodeValue:uint = 0, keyCodeValue:uint = 0, keyLocationValue:uint = 0, ctrlKeyValue:Boolean = false, altKeyValue:Boolean = false, shiftKeyValue:Boolean = false, controlKeyValue:Boolean = false, commandKeyValue:Boolean = false)
語言版本: | ActionScript 3.0 |
執行階段版本: | AIR 1.0, Flash Player 9, Flash Lite 4 |
建立包含鍵盤事件特定資訊的 Event 物件。 Event 物件會當做參數傳遞至事件偵聽程式。
參數type:String — 事件類型。可能的值包括:KeyboardEvent.KEY_DOWN 和 KeyboardEvent.KEY_UP
| |
bubbles:Boolean (default = true ) — 判斷 Event 物件是否參與事件流程的反昇階段。
| |
cancelable:Boolean (default = false ) — 判斷是否可以取消 Event 物件。
| |
charCodeValue:uint (default = 0 ) — 按下或放開之按鍵的字元碼值。 傳回的字元碼值是英文鍵盤值。 例如,如果在日文或德文鍵盤上按 Shift+3,Keyboard.charCode() 屬性會傳回 #,與英文鍵盤一樣。
| |
keyCodeValue:uint (default = 0 ) — 按下或放開之按鍵的按鍵碼值。
| |
keyLocationValue:uint (default = 0 ) — 鍵盤上的按鍵位置。
| |
ctrlKeyValue:Boolean (default = false ) — 在 Windows 中,表示是否已啟用 Ctrl 鍵。在 Mac 中,指出已啟用 Ctrl 鍵或 Command 鍵。
| |
altKeyValue:Boolean (default = false ) — 指出是否已啟用 Alt 輔助按鍵 (僅限 Windows)。
| |
shiftKeyValue:Boolean (default = false ) — 指出是否已啟用 Shift 輔助按鍵。
| |
controlKeyValue:Boolean (default = false ) — 指出是否已啟用 Control 鍵 (在 Mac 中) 以及是否已啟用 Control 或 Ctrl 鍵 (在 Windows 和 Linux 中)。
| |
commandKeyValue:Boolean (default = false ) — 指出 Command 鍵是否已啟用 (僅限 Mac)。
|
相關 API 元素
clone | () | 方法 |
toString | () | 方法 |
updateAfterEvent | () | 方法 |
public function updateAfterEvent():void
語言版本: | ActionScript 3.0 |
執行階段版本: | AIR 1.0, Flash Player 9 |
指出如果尚未修改顯示清單,便會在處理完此事件之後才顯示。
KEY_DOWN | 常數 |
public static const KEY_DOWN:String = "keyDown"
語言版本: | ActionScript 3.0 |
執行階段版本: | AIR 1.0, Flash Player 9, Flash Lite 4 |
KeyboardEvent.KEY_DOWN
常數會定義 keyDown
事件物件的 type
屬性值。
這個事件具有下列屬性:
屬性 | 值 |
---|---|
bubbles | true |
cancelable | 在 AIR 中為 true ,在 Flash Player 中為 false ;在 AIR 中,取消這個事件可以阻止字元被輸入到文字欄位。 |
charCode | 按下或放開之按鍵的字元碼值。 |
commandKey | 在 Mac 中,如果 Command 鍵為作用中,則為 true ;否則為 false |
controlKey | 在 Windows 和 Linux 中,如果 Ctrl 鍵為作用中,則為 true ;在 Mac 中,如果 Control 鍵為作用中,則為 true ;否則為 false |
ctrlKey | 在 Windows 和 Linux 中,如果 Ctrl 鍵為作用中,則為 true ;在 Mac 中,如果 Ctrl 鍵或 Command 鍵為作用中,則為 true ;否則為 false 。 |
currentTarget | 正主動使用事件偵聽程式處理 Event 物件的物件。 |
keyCode | 按下或放開之按鍵的按鍵碼值。 |
keyLocation | 鍵盤上的按鍵位置。 |
shiftKey | 如果 Shift 鍵為作用中,則為 true ;若已停用,則為 false 。 |
target | 成為焦點的 InteractiveObject 實體。 target 不會永遠都是顯示清單中註冊事件偵聽程式的物件。 請使用 currentTarget 屬性,存取目前正在處理該事件之顯示清單中的物件。 |
相關 API 元素
KEY_UP | 常數 |
public static const KEY_UP:String = "keyUp"
語言版本: | ActionScript 3.0 |
執行階段版本: | AIR 1.0, Flash Player 9, Flash Lite 4 |
KeyboardEvent.KEY_UP
常數會定義 keyUp
事件物件的 type
屬性值。
這個事件具有下列屬性:
屬性 | 值 |
---|---|
bubbles | true |
cancelable | false ;沒有要取消的預設行為指令。 |
charCode | 包含按下或放開之按鍵的字元碼值。 |
commandKey | 在 Mac 中,如果 Command 鍵為作用中,則為 true ;否則為 false |
controlKey | 在 Windows 和 Linux 中,如果 Ctrl 鍵為作用中,則為 true ;在 Mac 中,如果 Control 鍵為作用中,則為 true ;否則為 false |
ctrlKey | 在 Windows 中,如果 Ctrl 鍵為作用中,則為 true ;在 Mac 中,如果 Ctrl 鍵或 Command 鍵為作用中,則為 true ;否則為 false 。 |
currentTarget | 正主動使用事件偵聽程式處理 Event 物件的物件。 |
keyCode | 按下或放開之按鍵的按鍵碼值。 |
keyLocation | 鍵盤上的按鍵位置。 |
shiftKey | 如果 Shift 鍵為作用中,則為 true ;若已停用,則為 false 。 |
target | 成為焦點的 InteractiveObject 實體。 target 不會永遠都是顯示清單中註冊事件偵聽程式的物件。 請使用 currentTarget 屬性,存取目前正在處理該事件之顯示清單中的物件。 |
相關 API 元素
KeyboardEventExample
類別來說明鍵盤事件及其偵聽程式功能。 這個範例會執行下列工作:
- 建立新的 Sprite 實體 (名為
child
)。 - 宣告屬性,以便稍後用來設定方形的背景顏色和大小。
- 它會呼叫 Sprite 的
addChild()
方法,在預設座標 (0,0) 的「舞台」上繪出一個淺藍色的方形。 - 它會新增一個滑鼠事件和兩個鍵盤類型的事件偵聽程式:
- 當您按一下正方形以在
child
Sprite 上設定焦點時,便會傳送click
/clickHandler
,如此它便可以偵聽鍵盤事件。 keyDown
/keyDownHandler
,當按下任何按鍵時傳送。 訂閱者方法會使用trace()
陳述式來列印與事件相關的資訊。keyUp
/keyUpHandler
:當放開按鍵時傳送。
- 當您按一下正方形以在
測試此範例時,您必須先按一下正方形,鍵盤事件才能運作。
此外,如果您是使用 Flash 中的「測試影片」命令,編寫介面可能會回應特定按鍵,而非附加至該子 Sprite 的事件偵聽程式。
package { import flash.display.Sprite; import flash.display.DisplayObject; import flash.events.*; public class KeyboardEventExample extends Sprite { private var child:Sprite = new Sprite(); private var bgColor:uint = 0x00CCFF; private var size:uint = 80; public function KeyboardEventExample() { child.graphics.beginFill(bgColor); child.graphics.drawRect(0, 0, size, size); child.graphics.endFill(); addChild(child); child.addEventListener(MouseEvent.CLICK, clickHandler); child.addEventListener(KeyboardEvent.KEY_DOWN, keyDownHandler); child.addEventListener(KeyboardEvent.KEY_UP, keyUpHandler); } private function clickHandler(event:MouseEvent):void { stage.focus = child; } private function keyDownHandler(event:KeyboardEvent):void { trace("keyDownHandler: " + event.keyCode); trace("ctrlKey: " + event.ctrlKey); trace("keyLocation: " + event.keyLocation); trace("shiftKey: " + event.shiftKey); trace("altKey: " + event.altKey); } private function keyUpHandler(event:KeyboardEvent):void { trace("keyUpHandler: " + event.keyCode); } } }
Tue Jun 12 2018, 03:47 PM Z