onKeyDown处理函数只能工作一次

时间:2013-04-23 13:22:33

标签: javascript html5-canvas user-input

我创建了一个chack键盘点击功能,而不是一直声明事件监听器。

当你调用它时,但是当我有两个或更多个实例时,只有最后一个实例正常工作。

var left = y_input_s.chack (y_key.left);
var right =  y_input_s.chack (y_key.right);

只有“正确”才有效。

这是功能:

y_input.prototype.chack = function (key) 
{

//38 up |40 down| 39 left | right 37 | space 32 | 

//insert key code to array dinamicly

//if its unudetfid so the key wasent pressed yet so its false
if(y_input.prototype.key_down_cack[key] == undefined)
{
    y_input.prototype.key_down_cack[key] = false;   
}

//if the key is down change its place in array to true
document.onkeydown = function(event)
{

    if(event.keyCode == key){y_input.prototype.key_down_cack[key] = true;}

}

//if the key is up change its place in array to false
document.onkeyup = function(event)
{
    if(event.keyCode == key){y_input.prototype.key_down_cack[key] = false;}
}

//return the key state from array

return y_input.prototype.key_down_cack[key] ;
    }//end chack

我测试了函数里面的东西,“key”的值很好,但是当我在里面查“key”时。

document.onkeydown = function(event)
{

它返回参数中传递的最后一个chack函数键值。

1 个答案:

答案 0 :(得分:2)

它失败的原因是你一直在写关键事件。

document.onkeyup = function(event)

了解addEventListener