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 对