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 对配