首页
学习
活动
专区
圈层
工具
发布
首页
学习
活动
专区
圈层
工具
社区首页 >问答首页 >如何让一个键盘按钮在javascript中不被垃圾邮件。(进行延迟)

如何让一个键盘按钮在javascript中不被垃圾邮件。(进行延迟)
EN

Stack Overflow用户
提问于 2018-08-08 03:22:57
回答 2查看 85关注 0票数 0

当我想要跳跃的时候,我正在开发Babylon.js。我找到了一个网站并复制了它的跳转代码,它工作得很完美!但我想做一个真正的游戏,我不希望人们垃圾邮件空格键飞起来。我怎么才能让它有几秒钟的延迟,这样就没有人可以继续发送空格键并继续飞行了?

代码语言:javascript
代码运行次数:0
运行
AI代码解释
复制
function jump(){
  camera.cameraDirection.y = 2;
}

document.body.onkeyup = function(e){
  if(e.keyCode == 32){
    //your code
    console.log("jump");
    setTimeout(jump(), 1000); 

  }
}

链接到我的游戏

https://playground.babylonjs.com/#JCE1G3

EN

回答 2

Stack Overflow用户

发布于 2018-08-08 03:28:39

一种选择是创建一个持久的布尔变量,比如justJumped,只有在justJumpedfalse时才跳转。跳转时,将justJumped设置为true,并创建一个超时,以便在跳转持续时间(看起来略小于半秒)后将其重置回false

代码语言:javascript
代码运行次数:0
运行
AI代码解释
复制
let justJumped = false;
document.body.onkeyup = function(e) {
  if (e.keyCode == 32 && !justJumped) {
    justJumped = true;
    setTimeout(() => justJumped = false, 400)
    console.log("jump");
    jump();
  }
}

还要注意的是,setTimeout(jump(), 1000);可能并没有按照您的想法去做--它会立即调用jump。如果您想在1000ms之后调用jump函数,只需传递函数名本身

代码语言:javascript
代码运行次数:0
运行
AI代码解释
复制
let justJumped = false;
document.body.onkeyup = function(e) {
  if (e.keyCode == 32 && !justJumped) {
    justJumped = true;
    setTimeout(() => justJumped = false, 1400)
    console.log("jump");
    setTimeout(jump, 1000);
  }
}
票数 1
EN

Stack Overflow用户

发布于 2018-08-08 03:53:29

您也可以使用其他库来实现它。我最喜欢的是lodash。您可以使用_.throttle

代码语言:javascript
代码运行次数:0
运行
AI代码解释
复制
var throttled = _.throttle(jump, 1000);
document.body.onkeyup = function(e) {
    if (e.keyCode == 32) {
       throttled()
    }
}

如果你不想在第一个键弹出后立即跳起来。您可以添加选项trailing: false

代码语言:javascript
代码运行次数:0
运行
AI代码解释
复制
var throttled = _.throttle(jump, 1000, { 'trailing': false });
票数 0
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/51738183

复制
相关文章
对抗蠕虫 —— 如何让按钮不被 JS 自动点击
作者: EtherDream www.cnblogs.com/index-html/p/anti_xss_worm.html 前言 XSS 自动点按钮有什么危害? 在社交网络里,很多操作都是通过点击按钮发起的,例如发表留言。假如留言系统有 XSS,用户中招后除了基本攻击外,还能进行传播 —— XSS 自动填入留言内容,并模拟点击发表按钮,于是就能发布带有恶意代码的留言。好友看了中招后,又传播给他们的好友。。。从而形成蠕虫扩散。 那么有没有一种机制,让「发表留言」必须通过用户的「真实点击」按钮才能完成,而无
前端教程
2018/03/05
9.2K0
对抗蠕虫 —— 如何让按钮不被 JS 自动点击
如何让service不被杀死
1.在service中重写下面的方法,这个方法有三个返回值, START_STICKY是service被kill掉后自动重写创建 @Override     public int onStartCommand(Intent intent, int flags, int startId) {         return START_STICKY;     }   @Override         public int onStartCommand(Intent intent, int flag
xiangzhihong
2018/01/29
1.1K0
如何让你产品不被淘汰
从互联网时代开始,再到现在的智能时代,听得最多的就是你什么也没做错,就是因为输给了这个时代。今天这家公司倒闭啦,明天又一巨头倒下,像索尼好像在互联网上已经倒闭了很多次了。把这个快速变化的时代说得神忽其神。从切身感受来讲,我们处于一个快速变化的时代。但是我今天想说一个观点,与其抱怨这个世界的快速变化,抱怨你自己落后了,埋怨被颠覆,不如说是你自己没有搞清楚事物的核心本质,你存在的理由都没搞明白,跟不上步伐被淘汰是难免。
脑袋长草
2020/06/10
1.2K0
在 JavaScript 中对数组进行排序
排序是您在学习JavaScript时将使用的众多基本方法之一。让我们回顾一下如何对不同的数据类型使用排序方法。
腾龙
2022/06/02
4.9K0
屏蔽相应键盘按钮
 //屏蔽鼠标右键、Ctrl+N、Shift+F10、F11、F5刷新、退格键 //AuthorJavaScript
Java架构师必看
2020/07/21
1K0
[Word小技巧]如何让Word文档的内容不被复制
一般情况下的Word文档可以随意被复制粘贴的,有时我们不希望自己辛辛苦苦码字弄出来的文章被别人轻易地复制走。多数人会选择设置密码或搞上水印。但如果这份文档就是想让别人看该怎么办呢?今天就教给大家一招。
卷福同学
2023/04/28
1K0
[Word小技巧]如何让Word文档的内容不被复制
JavaScript 中如何进行异步编程
JavaScript语言的一大特点就是单线程,也就是说,同一个时间只能做一件事。那么,为什么JavaScript不能有多个线程呢?这样能提高效率啊。
江米小枣
2020/06/16
7960
JavaScript 中如何进行异步编程
在 JavaScript 中如何克隆对象?
我们假设一个变量 name 具有一个与之关联的原始值(number,string,boolean,undefined 和null)。 如果我们将此变量 name 复制到另一个变量name2 ,则原始变量的任何修改都不会影响到第二个变量,因为它们是原始值。
前端小智@大迁世界
2022/06/15
4.6K0
在JavaScript中,如何创建一个数组或对象?
1:使用数组字面量(Array Literal)语法,使用方括号 [] 包裹元素,并用逗号分隔:
王小婷
2023/10/23
3900
在JavaScript中,如何创建一个数组或对象?
Javascript 键盘事件
相关键值可以参照 http://www.liweiliang.com/741.html
李维亮
2021/07/09
1.1K0
FPGA设计中如何保持信号不被综合
在一些应用中,有些特定的信号我们需要保留,用于进行采集检测,而综合器会自动优化把它综合掉,那么,应该怎样告诉综合器,不让它优化掉我们需要保留的信号呢?
FPGA技术江湖
2020/12/30
1K0
FPGA设计中如何保持信号不被综合
企业面试题: JavaScript中如何对一个对象进行深度clone
(1)原始类型包括:数值、字符串、布尔值、null、undefined(后两个是特殊的原始值,这里不做详细的说明,我的上一篇博客有谈到过一些)
舒克
2019/08/09
1.2K0
【译】如何避免在JavaScript中阻塞DOM
原文链接:https://www.sitepoint.com/avoiding-dom-blocking/
腾讯IVWEB团队
2020/06/28
2.8K0
Octopress中嵌入ruby代码如何不被解析
用Octopress写博客即将快一年了,感觉自己用的还可以,并且借此熟练使用了Markdown,但是前几天写一篇关于如何在Octopress中集成多说评论的文章的时候,遇到了一个代码高亮的问题,就是如何处理代码块的问题。
技术小黑屋
2018/09/04
4520
mint-ui的search组件如何在键盘显示搜索按钮
<form action="" target="frameFile"> <mt-search v-model="value" placeholder="请输入关键字" @keyup.native.enter="search(value)"> <div v-infinite-scroll="loadMore()" infinite-scroll-disabled="loading" infinite-scroll-distance="10"> <ListItem :lists="li
蓓蕾心晴
2018/04/12
1.8K0
Nightwatch中如何模拟键盘操作
在自动化测试中有这样一个场景,在一个输入框中输入一串字符,然后执行敲回车键,验证搜索结果,以Google搜索为例,代码如下:
Peter Shen
2020/06/12
1.3K0
如何只用 30 行代码在 JavaScript 中创建一个神经网络
在这篇文章,我将会展示给你如何使用 Synaptic.js 创建并训练一个神经网络,它允许你在 Node.js 和浏览器中进行深度学习。
疯狂的技术宅
2019/03/27
1.1K0
如何只用 30 行代码在 JavaScript 中创建一个神经网络
使用 ahk 让普通键盘变为Dvorak键盘
本文告诉大家,如何使用软件做出Dvorak键盘。 在开始说如何做之前,需要告诉大家,什么是Dvorak键盘。 Dvorak Simplified Keyboard /ˈdvɔːræk, dəˈvɔː-/ 德沃夏克 是1936由 August Dvorak等人做出来的键盘,他可以提高英文的输入的速度,传说使用这个键盘打字比现在常用的键盘会快几倍。因为他把最少用的字母在最难碰到的下排,而把常打的字放在右手边。如果经常打英文,可以试试把键盘换为这个,开始一定不会打很快,但是几个月后,打字速度就会变得很快。
林德熙
2018/09/18
1K0
使用 ahk 让普通键盘变为Dvorak键盘
点击加载更多

相似问题

如何让按钮不被点击?

18

JavaScript如何让键盘通过按钮推送()新输入

10

如何让三个画布不被键盘调整大小?

11

如何让JavaScript执行键盘组合

18

javascript函数在引导下拉按钮中不被识别

10
添加站长 进交流群

领取专属 10元无门槛券

AI混元助手 在线答疑

扫码加入开发者社群
关注 腾讯云开发者公众号

洞察 腾讯核心技术

剖析业界实践案例

扫码关注腾讯云开发者公众号
领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档
查看详情【社区公告】 技术创作特训营有奖征文