Dart中的关键紧急事件

时间:2015-07-09 23:41:27

标签: dart polymer dart-polymer

我已经阅读了KeyEvent类(link here)的文档,以及几个SOF问题,但我仍然不能让Dart听我的按键。我正在使用Polymer-dart 0.16,并且可以使用core-a11-keys,但它不包含我需要的PLUS和MINUS键。

从我定义的自定义元素<myElement>,我希望能够听到被按下的不同键(元素中的任何位置)。该元素当然具有相应的htmldart文件。我应该从html还是dart听取按键?该文档似乎指出,在dart中使用此示例完成了侦听和处理:

// 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));

我猜最后一行是模拟用户按一个键。但如果我不添加它,就不会听取按键。

简而言之: 有人可以举一个关于如何倾听和处理按键事件的简单示例吗?

修改
想象一下我想要做的一个简单方法就是考虑谷歌收件箱。假设您的收件箱中有多封邮件,并且您希望在它们之间移动。在这个应用程序中,您可以使用左箭头和右箭头(以及用于不同操作的许多其他快捷方式)来执行此操作。

我正在尝试与Dart做类似的事情。假设我有一个自定义元素<my-element>,其中显示了所有邮件。我希望这个元素能够监听一些事件,比如按下UP和DOWN键。使用core-a11-keys,我能够做到,把

<core-a11y-keys target="{{ body }}" keys="up" 
on-keys-pressed="{{ selectPreviousItem }}"></core-a11y-keys>

myElement.html内(标记<polymer-element name='my-element'>内),其中selectPreviousItem是我的事件处理程序,这是myElement.dart中的方法。问题是core-a11-keys没有键盘上的所有键(我需要)。因此,我试图做同样的事情,但没有core-a11-keys,这是:当焦点位于<myElement>的某处时,监听和处理用户单击UP(或其他键)的事件(例如,重点可能在<myNestedElement><myElement>}。

0 个答案:

没有答案