KeyEvent

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

KeyEvent 尝试在“原始”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
finalinherited

方法

composedPath() List<EventTarget>
inherited
getModifierState(String keyArgument) bool
override
noSuchMethod(Invocation invocation) → dynamic
当访问不存在的方法或属性时被调用。
inherited
preventDefault() → void
inherited
stopImmediatePropagation() → void
inherited
stopPropagation() → void
inherited
toString() String
此对象的字符串表示。
inherited

操作符

operator ==(Object other) bool
等号操作符。
inherited

静态属性

canUseDispatchEvent bool
无设置器
keyDownEvent EventStreamProvider<KeyEvent>
提供所需目标上的键事件流的访问器。
getter/setter 对
keyPressEvent EventStreamProvider<KeyEvent>
提供所需目标上的键事件流的访问器。
getter/setter 对
keyUpEvent EventStreamProvider<KeyEvent>
提供所需目标上的键事件流的访问器。
getter/setter 对