如何仅在按下键时更改值?
Posted
tags:
篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了如何仅在按下键时更改值?相关的知识,希望对你有一定的参考价值。
我试图制作一个代码,当我按下箭头键时球只会移动,当我放开它停止时,它会继续移动。我怎样才能解决这个问题?
这是我编写的代码的一部分:
document.onkeydown = function tast (e) {
if (e.keyCode == 39) { // høyre
høyre = 1;
} else {
høyre = 0;
console.log("ikke høyre")
}
if (e.keyCode == 37) { // venstre
venstre = 1;
} else {
venstre = 0;
}
if (e.keyCode == 38) { // opp
opp = 1;
} else {
opp = 0;
}
if (e.keyCode == 40) { // ned
ned = 1;
} else {
ned = 0;
}
}
if (venstre == 1){
kuler[0].x -= 4;
}
if (høyre == 1){
kuler[0].x += 4;;
}
if (opp == 1){
kuler[0].y -= 4;
}
if (ned == 1){
kuler[0].y += 4;
}
答案
然后将你的值设置为0
上的else
。使用onkeyup
事件处理程序。然后为onkeypress
设置您的值为1
。而onkeyup
将他们设置为0
:
document.onkeydown = function tast (e) {
if (e.keyCode == 39) høyre = 1;
if (e.keyCode == 37) venstre = 1;
if (e.keyCode == 38) opp = 1;
if (e.keyCode == 40) ned = 1;
}
document.onkeyup = function tast2 (e) {
if (e.keyCode == 39) høyre = 0;
if (e.keyCode == 37) venstre = 0;
if (e.keyCode == 38) opp = 0;
if (e.keyCode == 40) ned = 0;
}
以上是关于如何仅在按下键时更改值?的主要内容,如果未能解决你的问题,请参考以下文章
JTable keypressed 事件仅在按下的第一个键时触发