KeyEvent

一个自定义的 KeyboardEvent,旨在消除跨浏览器的差异,并为所有键事件提供 keyCode 和 charCode 信息(当可以确定这类信息时)。

KeyEvent 试图在 "raw" KeyboardEvent 之上提供更高级、更精致的键盘事件信息。

使用 KeyEvents 的机制与底层的 KeyboardEvent 有所不同。要使用 KeyEvents,您需要创建一个流并将 KeyEvents 加入到流中,而不是使用 EventTarget.dispatchEvent。以下是一个使用示例:

// Initialize a stream for the KeyEvents:
var stream = KeyEvent.keyPressEvent.forTarget(document.body);
// Start listening to the stream of KeyEvents.
stream.listen((keyEvent) =>
    window.console.log('KeyPress event detected ${keyEvent.charCode}'));
...
// Add a new KeyEvent of someone pressing the 'A' key to the stream so
// listeners can know a KeyEvent happened.
stream.add(new KeyEvent('keypress', keyCode: 65, charCode: 97));

此类仍在不断发展中,我们非常欢迎了解如何使此类与尽可能多的国际键盘协同工作。欢迎提交虫洞!

实现的类型

构造函数

KeyEvent(String type, {Window? view, bool canBubble = true, bool cancelable = true, int keyCode = 0, int charCode = 0, int location = 1, bool ctrlKey = false, bool altKey = false, bool shiftKey = false, bool metaKey = false, EventTarget? currentTarget})
以编程方式创建一个新的 KeyEvent(和 KeyboardEvent)。
工厂方法
KeyEvent.wrap(KeyboardEvent parent)
parent 作为我们要仿真的事件来构造一个 KeyEvent。

属性

altKey bool
对于此事件,是否按下 alt 键的计算值。
无设置器覆盖
bubbles bool
无设置器继承
cancelable bool
无设置器继承
charCode int
对于此事件,预计的 charCode 的计算值。
无设置器覆盖
code String
无设置器覆盖
composed bool
无设置器继承
ctrlKey bool
如果在此次事件期间按下了Ctrl键则为True。
无设置器覆盖
currentTarget EventTarget?
此事件的当前已注册的目标。
无设置器
defaultPrevented bool
无设置器继承
detail int
无设置器覆盖
eventPhase int
无设置器继承
hashCode int
此对象的哈希码。
无设置器继承
isComposed bool
无设置器
isComposing bool
无设置器覆盖
isTrusted bool
无设置器继承
key String
无设置器覆盖
keyCode int
计算值为此事件的估计keyCode。
无设置器覆盖
location int
键被按下的键盘部分的访问器(之一:KeyLocation.STANDARD, KeyLocation.RIGHT, KeyLocation.LEFT, KeyLocation.NUMPAD, KeyLocation.MOBILE, KeyLocation.JOYSTICK)。
无设置器覆盖
matchingTarget Element
指向在其CSS选择器内触发事件的元素的一个指针。如果此事件未与任何事件委托相关联,访问此值将抛出UnsupportedError
无设置器继承
metaKey bool
如果在此次事件期间按下了Meta(或Mac命令)键则为True。
无设置器覆盖
path List<Node>
考虑到阴影DOM的事件路径。
无设置器继承
repeat bool
无设置器覆盖
runtimeType Type
对象的运行时类型的表示。
无设置器继承
shiftKey bool
如果在此次事件期间按下了Shift键则为True。
无设置器覆盖
sourceCapabilities InputDeviceCapabilities?
无设置器覆盖
target EventTarget
无设置器继承
timeStamp double
无设置器继承
type String
无设置器继承
view WindowBase?
无设置器覆盖
which int
计算值为此事件的估计keyCode。
无设置器覆盖
wrapped Event
final继承的

方法

composedPath() List<EventTarget>
继承的
getModifierState(String keyArgument) bool
重写
noSuchMethod(Invocation invocation) → dynamic
当访问不存在的属性或方法时会调用。
继承的
preventDefault() → void
继承的
stopImmediatePropagation() → void
继承的
stopPropagation() → void
继承的
toString() String
本对象的字符串表示形式。
继承的

运算符

operator ==(Object other) bool
等于运算符。
继承的

静态属性

canUseDispatchEvent bool
无设置器
keyDownEvent EventStreamProvider<KeyEvent>
用于提供所需目标的 KeyEvents 流的访问器。
getter/setter 对配
keyPressEvent EventStreamProvider<KeyEvent>
用于提供所需目标的 KeyEvents 流的访问器。
getter/setter 对配
keyUpEvent EventStreamProvider<KeyEvent>
用于提供所需目标的 KeyEvents 流的访问器。
getter/setter 对配