无法摆脱键盘延迟

时间:2015-06-05 15:33:26

标签: actionscript-3

编辑:我应该指明我是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;
    }
}

0 个答案:

没有答案