【发布时间】:2010-12-21 22:13:58
【问题描述】:
我正在开发一个小游戏。我使用下面的代码来检测玩家按下的按键:
private function onKeyDown(event:KeyboardEvent):void {
//moviment keys
if (event.keyCode == 37 || event.keyCode == 65) {
this.leftKeyPressed = true;
}
if (event.keyCode == 39 || event.keyCode == 68) {
this.rightKeyPressed = true;
}
if (event.keyCode == 38 || event.keyCode == 87) {
this.upKeyPressed = true;
}
if (event.keyCode == 40 || event.keyCode == 83) {
this.downKeyPressed = true;
}
if (event.keyCode == this.shootKey) {
this.shootKeyPressed = true;
}
}
onKeyUp 事件:
private function onKeyUp(event:KeyboardEvent):void {
if (event.keyCode == 37 || event.keyCode == 65) {
this.leftKeyPressed = false;
}
if (event.keyCode == 39 || event.keyCode == 68) {
this.rightKeyPressed = false;
}
if (event.keyCode == 38 || event.keyCode == 87) {
this.upKeyPressed = false;
}
if (event.keyCode == 40 || event.keyCode == 83) {
this.downKeyPressed = false;
}
if (event.keyCode == this.shootKey) {
this.shootKeyPressed = false;
}
if (event.keyCode == changeColorKey) {
trace('color key released');
trace(getTimer());
this.changeColorKeyPressed = true;
}
}
基本上,玩家几乎一直按住shootKey。并且 changeColorKey 将被经常按下但不会按住。在测试时,我注意到按住shootKey 和向下的右箭头,changeColorKey 的 onKeyUp 事件不会被触发。按住向上或向下箭头键而不是向右箭头具有相同的效果。如果我按住左箭头键,事件就会被触发。为什么会发生?我的代码有问题吗?
【问题讨论】:
标签: flash actionscript-3 events keyboard