Crafty.js绑定无法在Firefox 24.0中运行

时间:2013-09-27 16:55:21

标签: firefox bind craftyjs

我在Chrome中使用了一个非常简单的Crafty.js脚本。

在我的组件文件中我有这个组件:

Crafty.c('PlayerCharacter', {
init: function() {
var playerRef = this;
playerRef.bind("KeyDown", function(e) 
  {
      if (playerRef.isDown('LEFT_ARROW')) {
          playerRef.x=playerRef.x-16;
          myPlayer.sendMessage("LEFT");
      } else if (playerRef.isDown('RIGHT_ARROW')) {
          playerRef.x=playerRef.x+16;
          myPlayer.sendMessage("RIGHT");
      } else if (playerRef.isDown('UP_ARROW')) {
          playerRef.y=playerRef.y-16;
          myPlayer.sendMessage("UP");
      } else if (playerRef.isDown('DOWN_ARROW')) {
          playerRef.y=playerRef.y+16;
          myPlayer.sendMessage("DOWN");
      }
  });  
},
});

然后在我的游戏开始功能中,我有:

Crafty.e("2D, DOM, Color, Keyboard, Mouse, PlayerCharacter")
  .attr({x: 20*16, y: 20*16, w: 16, h: 16})
  .color('rgb(255,0,0)');

如前所述,玩家角色会在Chrome中按预期显示和移动,但在Firefox中,它最初只显示并且不会移动。没有生成错误。

如果有人对如何调试这个有任何想法或想法(目前使用Firebug,但成效有限)。

BTW:以下备用代码也可以在Chrome中使用,而不适用于Firefox

Crafty.c('Actor', {
  init: function() {
   this.requires('2D, Canvas, Grid');
  },
});

Crafty.c('PlayerCharacter', {
  init: function() {
   this.requires('Actor, Fourway, Color')
     .fourway(4)
     .color('rgb(20, 75, 40)');
  }
});

0 个答案:

没有答案