包 | 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 事件类型来处理字符输入。
要以全局方式侦听按键事件,请在舞台上侦听捕获阶段、目标阶段或冒泡阶段。
相关 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
表示 Ctrl 键是处于活动状态 (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 键和右 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 | 属性 |
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 ) — 表示在 Mac 中是否已激活 Control 键,以及在 Windows 和 Linux 中是否已激活 Control 或 Ctrl 键。
| |
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) 处。 - 它添加了一个鼠标事件两个键盘类型事件侦听器:
click
/clickHandler
,在单击正方形将焦点设置在child
sprite 上以使它可以侦听键盘事件时进行调度。keyDown
/keyDownHandler
,按下任何键时将调度这两个侦听器。订阅者方法使用trace()
语句输出有关事件的信息。keyUp
/keyUpHandler
,在释放某个键时进行调度。
在测试此示例时,需要首先单击此正方形才能让键盘事件正常工作。
此外,如果使用 Flash 中的“测试影片”命令,创作界面可能会响应特定的键,而不会响应附加该 child 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, 11:04 AM Z