gpt4 book ai didi

javascript - 计算在键盘上按下一个键的时间

转载 作者:行者123 更新时间:2023-11-30 18:27:57 25 4
gpt4 key购买 nike

是否有可能必须使用两个键,例如,它会累积按下每个键的时间,例如键 LEFT 和 RIGHT,所以每次单击其中一个时,它都会累积按下的时间因为,如果您再次按下同一个键,它会添加时间,所以最后您会得到每个键按下的总时间。

如何做到这一点?

最佳答案

在很大程度上取决于平台。但是事件驱动平台有一点容易,如果它们将按键按下和按键弹起视为事件(大多数情况下,包括 .net、java 和 Windows)。

只需监听按键事件,并记录它发生的时间。当您获得同一键的按键事件时,只需从您记录的时间中减去它发生的时间。两者之间的区别在于按键的持续时间。

问题是,根据您的平台处理按键重复的方式,您可能会在按下按键之前多次按下同一个按键。仅跟踪每个键的第一个(当然是自上次按键或应用程序启动以来)。由于您一次可以按下多个键,如果您想正确执行此操作,您将能够记住多个键的按下时间。

如果您想跟踪总时间,则将您在按键时发现的时间差计算在内,并将其添加到该按键的运行总计中。

在 JS 中:

(function() {
var output = document.getElementById('output'),
totalTime = {},
pressed = {};

window.onkeydown = function(e) {
if (e.which in pressed) return;
pressed[e.which] = e.timeStamp;
};

window.onkeyup = function(e) {
if (!(e.which in pressed)) return;
var duration = ( e.timeStamp - pressed[e.which] ) / 1000;
if (!(e.which in totalTime)) totalTime[e.which] = 0;
totalTime[e.which] += duration;
output.innerHTML +=
'<p>Key ' + e.which + ' was pressed for ' +
duration + ' seconds this time' +
'(' + totalTime[e.which] + ' total)</p>';
delete pressed[e.which];
};
})();

关于javascript - 计算在键盘上按下一个键的时间,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/10354902/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com