编辑:我应该指明我是flash的新手
我一直试图消除键盘延迟,但由于某些原因,此代码仍然存在延迟,我无法弄清楚原因:
var Keys = [];
stage.addEventListener(KeyboardEvent.KEY_DOWN, function(e:KeyboardEvent){
Keys[e.keyCode] = true;
});
stage.addEventListener(KeyboardEvent.KEY_UP, function(e:KeyboardEvent){
Keys[e.keyCode] = false;
});
stage.addEventListener(Event.ENTER_FRAME, update);
[...]
function update(e:Event){
if(Keys[39]){
peg.x+=2;
}
if(Keys[37]){
peg.x-=2;
}
}
看起来数组的值会不断变回false,但我真的不确定
编辑:这是整个代码:
var rectangle:Shape = new Shape;
var nbRectangleWidth = 10;
var nbRectangleHeight = 7;
var rectMargin:int = (stage.stageWidth - (nbRectangleWidth*30))/2;
var Keys = [];
stage.addEventListener(KeyboardEvent.KEY_DOWN, function(e:KeyboardEvent){
Keys[e.keyCode] = true;
});
stage.addEventListener(KeyboardEvent.KEY_UP, function(e:KeyboardEvent){
Keys[e.keyCode] = false;
});
stage.addEventListener(Event.ENTER_FRAME, update);
function initGame(){
for(var rectY=0; rectY<nbRectangleHeight; rectY++){
for(var rectX=0; rectX<nbRectangleWidth; rectX++){
rectangle.graphics.beginFill(0xFFFFFF);
rectangle.graphics.drawRect(
rectMargin+(rectX*30),
10+(rectY*15),
25, 10
);
rectangle.graphics.endFill();
addChild(rectangle);
}
}
};
initGame()
function update(e:Event){
ball.x = peg.x;
ball.y = peg.y - peg.height/2 - ball.height/2;
if(Keys[39]){
peg.x+=2;
}
if(Keys[37]){
peg.x-=2;
}
}