如何从节点中的按键触发功能?

时间:2014-05-31 17:19:24

标签: javascript node.js shell

我有一个用javascript编写的脚本,它对我拥有的无人机有所帮助。截至目前,我在我的shell中运行该脚本,就像这个node foo.js一样,脚本运行直到我使用控件C中止它。但是现在我希望能够运行该脚本并让它监听我给出的键盘事件它(例如ENTER,上/下箭头键,空格键),并根据事件执行特定功能。当我完成后,我仍然可以按下控制C来停止程序。如果有人可以帮助我,那真是太棒了。我仍然在高中,对编程很新。

以下是供参考的脚本:

var arDrone = require('ar-drone');
var client  = arDrone.createClient();

client.takeoff();

client

  .after(10000, function() {
    this.stop();
    this.land();
  });

1 个答案:

答案 0 :(得分:0)

每个键盘键都有一个特殊的键码(即f = 70)。你可以在这里找到:

http://www.cambiaresearch.com/articles/15/javascript-char-codes-key-codes

我会使用jQuery触发这些事件,第一个是任何按键:

$(function() {
    $('client').keydown();
    $('client').keypress();
    $('client').keyup();
});

第二个是特定的击键:

$function() {
    var e = $.Event('keypress');
    e.which = 39; // right arrow
    $('client').trigger(e);
});

那么你会有一个叫做触发器的函数来检查特定的数字,你会相应地移动你的无人机。