| 套件 | 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):voidcommandKey | 屬性 |
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):voidshiftKey | 屬性 |
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) 的「舞台」上繪出一個淺藍色的方形。 - 它會新增一個滑鼠事件和兩個鍵盤類型的事件偵聽程式:
- 當您按一下正方形以在
childSprite 上設定焦點時,便會傳送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
隱藏繼承公用屬性
顯示繼承公用屬性