flash.events
public class KeyboardEvent
继承KeyboardEvent Inheritance Event Inheritance Object

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

在响应用户通过键盘输入的内容时将调度的 KeyboardEvent 对象 ID。有两种类型的键盘事件:KeyboardEvent.KEY_DOWNKeyboardEvent.KEY_UP

由于按键与特定字符之间的映射因设备和操作系统而异,因此请使用 TextEvent 事件类型来处理字符输入。

若要以全局方式侦听按键事件,请在舞台上侦听捕获阶段、目标阶段或冒泡阶段。

查看示例

另请参见

KEY_DOWN
KEY_UP
KeyLocation
About keyboard events
About keyboard events
About keyboard events
About keyboard events


公共属性
 属性定义方
  altKey : Boolean
在 Windows 中,指示 Alt 键是处于活动状态 (true) 还是非活动状态 (false);在 Mac OS 中,指示 Option 键是否处于活动状态。
KeyboardEvent
 Inheritedbubbles : Boolean
[只读 (read-only)] 指示事件是否为冒泡事件。
Event
 Inheritedcancelable : Boolean
[只读 (read-only)] 指示是否可以阻止与事件相关联的行为。
Event
  charCode : uint
包含按下或释放的键的字符代码值。
KeyboardEvent
  AIR-only commandKey : Boolean
指示 Command 键是处于活动状态 (true) 还是非活动状态 (false)。
KeyboardEvent
 Inheritedconstructor : Object
对类对象或给定对象实例的构造函数的引用。
Object
  AIR-only controlKey : Boolean
指示 Ctrl 键是处于活动状态 (true) 还是非活动状态 (false)。
KeyboardEvent
  ctrlKey : Boolean
在 Windows 和 Linux 中,指示 Ctrl 键是处于活动状态 (true) 还是非活动状态 (false);在 Mac OS 中,指示 Ctrl 键或 Command 键是否处于活动状态。
KeyboardEvent
 InheritedcurrentTarget : Object
[只读 (read-only)] 当前正在使用某个事件侦听器处理 Event 对象的对象。
Event
 InheritedeventPhase : uint
[只读 (read-only)] 事件流中的当前阶段。
Event
  keyCode : uint
按下或释放的键的键控代码值。
KeyboardEvent
  keyLocation : uint
指示键在键盘上的位置。
KeyboardEvent
 Inheritedprototype : Object
[静态] 对类或函数对象的原型对象的引用。
Object
  shiftKey : Boolean
指示 Shift 功能键是处于活动状态 (true) 还是非活动状态 (false)。
KeyboardEvent
 Inheritedtarget : Object
[只读 (read-only)] 事件目标。
Event
 Inheritedtype : String
[只读 (read-only)] 事件的类型。
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
 Inherited
formatToString(className:String, ... arguments):String
用于在自定义 ActionScript 3.0 Event 类中实现 toString() 方法的实用程序函数。
Event
 Inherited
指示对象是否已经定义了指定的属性。
Object
 Inherited
检查是否已对事件调用 preventDefault() 方法。
Event
 Inherited
指示 Object 类的实例是否在指定为参数的对象的原型链中。
Object
 Inherited
如果可以取消事件的默认行为,则取消该行为。
Event
 Inherited
指示指定的属性是否存在、是否可枚举。
Object
 Inherited
设置循环操作动态属性的可用性。
Object
 Inherited
防止对事件流中当前节点中和所有后续节点中的事件侦听器进行处理。
Event
 Inherited
防止对事件流中当前节点的后续节点中的所有事件侦听器进行处理。
Event
  
返回一个字符串,其中包含 KeyboardEvent 对象的所有属性。
KeyboardEvent
  
指示如果已修改显示列表,则应该在此事件处理完成后呈现显示结果
KeyboardEvent
 Inherited
返回指定对象的原始值。
Object
公共常量
 常量定义方
 InheritedACTIVATE : String = "activate"
[静态] ACTIVATE 常量定义 activate 事件对象的 type 属性的值。
Event
 InheritedADDED : String = "added"
[静态] Event.ADDED 常量定义 added 事件对象的 type 属性值。
Event
 InheritedADDED_TO_STAGE : String = "addedToStage"
[静态] Event.ADDED_TO_STAGE 常量定义 addedToStage 事件对象的 type 属性值。
Event
 InheritedCANCEL : String = "cancel"
[静态] Event.CANCEL 常量定义 cancel 事件对象的 type 属性的值。
Event
 InheritedCHANGE : String = "change"
[静态] Event.CHANGE 常量定义 change 事件对象的 type 属性值。
Event
 InheritedCLEAR : String = "clear"
[静态] Event.CLEAR 常量定义 clear 事件对象的 type 属性的值。
Event
 InheritedCLOSE : String = "close"
[静态] Event.CLOSE 常量定义 close 事件对象的 type 属性的值。
Event
 InheritedAIR-only CLOSING : String = "closing"
[静态] Event.CLOSING 常量定义 closing 事件对象的 type 属性值。
Event
 InheritedCOMPLETE : String = "complete"
[静态] Event.COMPLETE 常量定义 complete 事件对象的 type 属性值。
Event
 InheritedCONNECT : String = "connect"
[静态] Event.CONNECT 常量定义 connect 事件对象的 type 属性值。
Event
 InheritedCOPY : String = "copy"
[静态] 定义 copy 事件对象的 type 属性值。
Event
 InheritedCUT : String = "cut"
[静态] 定义 cut 事件对象的 type 属性值。
Event
 InheritedDEACTIVATE : String = "deactivate"
[静态] Event.DEACTIVATE 常量定义 deactivate 事件对象的 type 属性值。
Event
 InheritedDISPLAYING : String = "displaying"
[静态] Event.DISPLAYING 常量定义 displaying 事件对象的 type 属性值。
Event
 InheritedENTER_FRAME : String = "enterFrame"
[静态] Event.ENTER_FRAME 常量定义 enterFrame 事件对象的 type 属性值。
Event
 InheritedEXIT_FRAME : String = "exitFrame"
[静态] Event.EXIT_FRAME 常量定义 exitFrame 事件对象的 type 属性的值。
Event
 InheritedAIR-only EXITING : String = "exiting"
[静态] Event.EXITING 常量定义 exiting 事件对象的 type 属性值。
Event
 InheritedFRAME_CONSTRUCTED : String = "frameConstructed"
[静态] Event.FRAME_CONSTRUCTED 常量定义 frameConstructed 事件对象的 type 属性的值。
Event
 InheritedFULLSCREEN : String = "fullScreen"
[静态] Event.FULL_SCREEN 常量定义 fullScreen 事件对象的 type 属性值。
Event
 InheritedAIR-only HTML_BOUNDS_CHANGE : String = "htmlBoundsChange"
[静态] Event.HTML_BOUNDS_CHANGE 常量定义 htmlBoundsChange 事件对象的 type 属性值。
Event
 InheritedAIR-only HTML_DOM_INITIALIZE : String = "htmlDOMInitialize"
[静态] Event.HTML_DOM_INITIALIZE 常量定义 htmlDOMInitialize 事件对象的 type 属性值。
Event
 InheritedAIR-only HTML_RENDER : String = "htmlRender"
[静态] Event.HTML_RENDER 常量定义 htmlRender 事件对象的 type 属性值。
Event
 InheritedID3 : String = "id3"
[静态] Event.ID3 常量定义 id3 事件对象的 type 属性值。
Event
 InheritedINIT : String = "init"
[静态] Event.INIT 常量定义 init 事件对象的 type 属性值。
Event
  KEY_DOWN : String = "keyDown"
[静态] 定义 keyDown 事件对象的 type 属性值。
KeyboardEvent
  KEY_UP : String = "keyUp"
[静态] 定义 keyUp 事件对象的 type 属性值。
KeyboardEvent
 InheritedAIR-only LOCATION_CHANGE : String = "locationChange"
[静态] Event.LOCATION_CHANGE 常量定义 locationChange 事件对象的 type 属性值。
Event
 InheritedMOUSE_LEAVE : String = "mouseLeave"
[静态] Event.MOUSE_LEAVE 常量定义 mouseLeave 事件对象的 type 属性值。
Event
 InheritedAIR-only NETWORK_CHANGE : String = "networkChange"
[静态] Event.NETWORK_CHANGE 常量定义 networkChange 事件对象的 type 属性值。
Event
 InheritedOPEN : String = "open"
[静态] Event.OPEN 常量用于定义 open 事件对象的 type 属性值。
Event
 InheritedPASTE : String = "paste"
[静态] Event.PASTE 常量定义 paste 事件对象的 type 属性的值。
Event
 InheritedREMOVED : String = "removed"
[静态] Event.REMOVED 常量定义 removed 事件对象的 type 属性值。
Event
 InheritedREMOVED_FROM_STAGE : String = "removedFromStage"
[静态] Event.REMOVED_FROM_STAGE 常量定义 removedFromStage 事件对象的 type 属性值。
Event
 InheritedRENDER : String = "render"
[静态] Event.RENDER 常量定义 render 事件对象的 type 属性的值。
Event
 InheritedRESIZE : String = "resize"
[静态] Event.RESIZE 常量定义 resize 事件对象的 type 属性的值。
Event
 InheritedSCROLL : String = "scroll"
[静态] Event.SCROLL 常量定义 scroll 事件对象的 type 属性值。
Event
 InheritedSELECT : String = "select"
[静态] Event.SELECT 常量定义 select 事件对象的 type 属性的值。
Event
 InheritedSELECT_ALL : String = "selectAll"
[静态] Event.SELECT_ALL 常量定义 selectAll 事件对象的 type 属性的值。
Event
 InheritedSOUND_COMPLETE : String = "soundComplete"
[静态] Event.SOUND_COMPLETE 常量定义 soundComplete 事件对象的 type 属性值。
Event
 InheritedTAB_CHILDREN_CHANGE : String = "tabChildrenChange"
[静态] Event.TAB_CHILDREN_CHANGE 常量定义 tabChildrenChange 事件对象的 type 属性值。
Event
 InheritedTAB_ENABLED_CHANGE : String = "tabEnabledChange"
[静态] Event.TAB_ENABLED_CHANGE 常量定义 tabEnabledChange 事件对象的 type 属性值。
Event
 InheritedTAB_INDEX_CHANGE : String = "tabIndexChange"
[静态] Event.TAB_INDEX_CHANGE 常量定义 tabIndexChange 事件对象的 type 属性值。
Event
 InheritedUNLOAD : String = "unload"
[静态] Event.UNLOAD 常量定义 unload 事件对象的 type 属性值。
Event
 InheritedAIR-only USER_IDLE : String = "userIdle"
[静态] Event.USER_IDLE 常量定义 userIdle 事件对象的 type 属性值。
Event
 InheritedAIR-only USER_PRESENT : String = "userPresent"
[静态] Event.USER_PRESENT 常量定义 userPresent 事件对象的 type 属性值。
Event
属性详细信息
altKey属性
altKey:Boolean  [读写]

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

在 Windows 中,指示 Alt 键是处于活动状态 (true) 还是非活动状态 (false);在 Mac OS 中,指示 Option 键是否处于活动状态。



实现
    public function get altKey():Boolean
    public function set altKey(value:Boolean):void
charCode属性 
charCode:uint  [读写]

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

包含按下或释放的键的字符代码值。字符代码值为英文键盘值。例如,如果您按 Shift+3,则 charCode 在日文键盘上将为 #,就像在英文键盘上一样。

注意:当输入法编辑器 (IME) 正在运行时,charCode 不会报告精确的字符代码。



实现
    public function get charCode():uint
    public function set charCode(value:uint):void

另请参见

AIR-only commandKey属性 
commandKey:Boolean  [读写]

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

指示 Command 键是处于活动状态 (true) 还是非活动状态 (false)。仅 Mac OS 支持。在 Mac OS 中,commandKey 属性具有与 ctrlKey 属性相同的值。



实现
    public function get commandKey():Boolean
    public function set commandKey(value:Boolean):void
AIR-only controlKey属性 
controlKey:Boolean  [读写]

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

指示 Ctrl 键是处于活动状态 (true) 还是非活动状态 (false)。在 Windows 和 Linux 中,Ctrl 键处于活动状态时这也为 true。



实现
    public function get controlKey():Boolean
    public function set controlKey(value:Boolean):void
ctrlKey属性 
ctrlKey:Boolean  [读写]

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

在 Windows 和 Linux 中,指示 Ctrl 键是处于活动状态 (true) 还是非活动状态 (false);在 Mac OS 中,指示 Ctrl 键或 Command 键是否处于活动状态。



实现
    public function get ctrlKey():Boolean
    public function set ctrlKey(value:Boolean):void
keyCode属性 
keyCode:uint  [读写]

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

按下或释放的键的键控代码值。

注意:当输入法编辑器 (IME) 正在运行时,keyCode 不会报告精确的键控代码。



实现
    public function get keyCode():uint
    public function set keyCode(value:uint):void

另请参见

keyLocation属性 
keyLocation:uint  [读写]

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

指示键在键盘上的位置。这对于区分在键盘上多次出现的键非常有用。例如,您可以根据此属性的值来区分左 Shift 键和右 Shift 键:左 Shift 键的值为 KeyLocation.LEFT,右 Shift 键的值为 KeyLocation.RIGHT。另一个示例是区分标准键盘 (KeyLocation.STANDARD) 与数字键盘 (KeyLocation.NUM_PAD) 上按下的数字键。



实现
    public function get keyLocation():uint
    public function set keyLocation(value:uint):void
shiftKey属性 
shiftKey:Boolean  [读写]

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

指示 Shift 功能键是处于活动状态 (true) 还是非活动状态 (false)。



实现
    public function get shiftKey():Boolean
    public function set shiftKey(value:Boolean):void
构造函数详细信息
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

创建一个 Event 对象,其中包含有关键盘事件的特定信息。将 Event 对象作为参数传递给事件侦听器。

参数
type:String — 事件的类型。可能的值为:KeyboardEvent.KEY_DOWNKeyboardEvent.KEY_UP
 
bubbles:Boolean (default = true) — 确定 Event 对象是否参与事件流的冒泡阶段。
 
cancelable:Boolean (default = false) — 确定是否可以取消 Event 对象。
 
charCodeValue:uint (default = 0) — 按下或释放的键的字符代码值。返回的字符代码值为英文键盘值。例如,如果您按 Shift+3,则 getASCIICode() 方法在日文键盘上将返回 #,就像在英文键盘上一样。
 
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) — 指示在 Mac 中是否已激活 Control 键,以及在 Windows 和 Linux 中是否已激活 Control 或 Ctrl 键。
 
commandKeyValue:Boolean (default = false) — 指示是否已激活 Command 键(仅限 Mac)。

另请参见

方法详细信息
clone()方法
override public function clone():Event

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

创建 KeyboardEvent 对象的副本,并设置每个属性的值以匹配原始属性值。

返回
Event — 其属性值与原始属性值匹配的新 KeyboardEvent 对象。
toString()方法 
override public function toString():String

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

返回一个字符串,其中包含 KeyboardEvent 对象的所有属性。字符串的格式如下:

[KeyboardEvent type=value bubbles=value cancelable=value ... shiftKey=value ]

返回
String — 一个字符串,其中包含 KeyboardEvent 对象的所有属性。
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

定义 keyDown 事件对象的 type 属性值。

此事件具有以下属性:

属性
bubbles true
cancelable false;没有要取消的默认行为。
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 属性来访问显示列表中当前正在处理此事件的对象。

另请参见

KEY_UP常量 
public static const KEY_UP:String = "keyUp"

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

定义 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 属性来访问显示列表中当前正在处理此事件的对象。

另请参见

示例 如何使用示例
KeyboardEventExample.as

以下示例使用 KeyboardEventExample 类来说明键盘事件及其侦听器函数。该示例执行下列任务:
  1. 它创建一个新的 Sprite 实例,名称为 child
  2. 它声明了以后在设置正方形的背景颜色和大小时使用的属性。
  3. 使用 Sprite 的方法,它通过调用 addChild() 方法绘制一个浅蓝色正方形,其显示在舞台上的默认坐标 (0,0) 处。
  4. 它添加了一个鼠标事件两个键盘类型事件侦听器:
    • click/clickHandler,在单击正方形将焦点设置在 child sprite 上以使它可以侦听键盘事件时进行调度。
    • keyDown/keyDownHandler,按下任何键时将调度这两个侦听器。订阅者方法使用 trace() 语句输出有关事件的信息。
    • keyUp / keyUpHandler,在释放某个键时进行调度。

在测试此示例时,需要首先单击此正方形才能让键盘事件正常工作。

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);
        }
        
        
    }
}