如何在Dart编程中监听键盘事件?

5
我是新手,正在尝试学习谷歌的Dart语言。我对编程一般都不太懂,所以我正在努力阅读相关文档,但感觉有些压力。
我想了解如何创建一个使用空格键(请参见此处)的交互方式。当按下空格键时,它将在"void startwatch()"和"void resetwatch()"之间切换。
我相信这是正确的文档页面(请参见KeyboardEventController的文档)
void main() {

}

void startwatch() {
  mywatch.start();
  var oneSecond = new Duration(milliseconds:1);
  var timer = new Timer.repeating(oneSecond, updateTime);
}

void resetwatch() {
  mywatch.reset();
  counter = '00:00:00';
}

如果需要更多信息,我会尽快回复。非常感谢您的帮助。

1个回答

6

监听键盘事件并在startwatch()resetwatch()之间切换:

void main() {
  var started = false;

  window.onKeyUp.listen((KeyboardEvent e) {
    print('pressed a key');

    if (e.keyCode == KeyCode.SPACE) {
      print('pressed space');

      if (started) {
        resetwatch();
      } else {
        startwatch();
      }

      started = !started; // A quick way to switch between true and false.
    }
  });
}

windowWindow 类的一个实例。它会自动为您提供。

还有一个方便的类叫做KeyEvent,它试图消除跨浏览器不一致性。这些不一致性通常与特殊键有关。


KeyEvent 的文档告诉我们要将事件添加到 Stream 中,但是流不支持添加事件,必须使用 SinkStreamController。那么我们该怎么办呢?我有一个类似的问题 - Philippe Fanaro

网页内容由stack overflow 提供, 点击上面的
可以查看英文原文,
原文链接