Keyboard 组件

为实体提供键盘事件。

事件

KeyDown [Crafty's KeyboardEvent = { key: `Crafty.keys` keyCode (Number), originalEvent: original KeyboardEvent }]
当DOM 'keydown' 事件触发时在每一个实体上触发。
KeyUp [Crafty's KeyboardEvent = { key: `Crafty.keys` keyCode (Number), originalEvent: original KeyboardEvent }]
当 DOM 'keyup' 事件触发时在每一个实体上触发。

按键的当前状态(按下/释放)会绑定到这些事件,你可以使用 .isDown 方法查询。

例子

Crafty.e("2D, DOM, Color, Keyboard")
  .attr({x: 100, y: 100, w: 50, h: 50})
  .color("red")
  .bind('KeyDown', function(e) {
    if (e.key == Crafty.keys.LEFT_ARROW) {
      this.x = this.x-1;
    } else if (e.key == Crafty.keys.RIGHT_ARROW) {
      this.x = this.x+1;
    } else if (e.key == Crafty.keys.UP_ARROW) {
      this.y = this.y-1;
    } else if (e.key == Crafty.keys.DOWN_ARROW) {
      this.y = this.y+1;
    }
  });

方法

Back to top

.isDown()

public Boolean isDown(String keyName)
keyName

按键的名字。见 Crafty.keys.

public Boolean isDown(Number keyCode)
keyCode

Crafty.keys中的一个按键码。

确定某个键当前是否处于按下状态。

例子

ent.requires('Keyboard')
   .bind('EnterFrame', function() {
      if (this.isDown('SPACE'))
         this.y--;
   });