设为首页收藏本站|繁體中文

Project1

 找回密码
 注册会员
搜索
查看: 2693|回复: 5
打印 上一主题 下一主题

[有事请教] 如何暂时禁用键盘输入或是屏蔽按键?

[复制链接]

Lv1.梦旅人

梦石
0
星屑
120
在线时间
17 小时
注册时间
2021-2-24
帖子
5
跳转到指定楼层
1
发表于 2021-3-3 00:14:59 | 只看该作者 回帖奖励 |倒序浏览 |阅读模式

加入我们,或者,欢迎回来。

您需要 登录 才可以下载或查看,没有帐号?注册会员

x
rt
主要是我设置触发事件的按键太多了,列分支条件屏蔽掉实在太麻烦 ,有没有办法在执行事件时暂时禁用按键输入,执行完后恢复,让它们不会相互干扰

Lv3.寻梦者

梦石
0
星屑
3476
在线时间
293 小时
注册时间
2020-1-27
帖子
190
2
发表于 2021-3-3 10:19:39 | 只看该作者
  1. (function(){
  2.     var InputFuncs = [
  3.         "isPressed",
  4.         "isTriggered",
  5.         "isRepeated",
  6.         "isLongPressed"
  7.     ];
  8.     var TouchInputFuncs = [
  9.         "isPressed",
  10.         "isTriggered",
  11.         "isRepeated",
  12.         "isLongPressed",
  13.         "isCancelled",
  14.         "isMoved",
  15.         "isReleased"
  16.     ];

  17.     function hookFunctions(obj,funcNamesArr,ProcFunc/*function(args,orifunc)*/){
  18.         var oriFuncs = {};
  19.         for(var i = 0; i < funcNamesArr.length; i++){
  20.             (function(oriFunc){
  21.                 obj[funcNamesArr[i]] = function(){return ProcFunc.apply(this,[arguments,oriFunc])};
  22.             })(obj[funcNamesArr[i]]);
  23.         }
  24.     }
  25.     function blockInput(args,oriFunc){
  26.         if(window.blockInputOn){//可以改成$gameSwitches.value(开关id) 就可用开关调整输入开关
  27.             return false;
  28.         }
  29.         return oriFunc.apply(this,args);
  30.     }
  31.     hookFunctions(Input,InputFuncs,blockInput);
  32.     hookFunctions(TouchInput,TouchInputFuncs,blockInput)
  33. })();
复制代码

执行window.blockInputOn=1 则禁止输入
window.blockInputOn=0允许输入
或者看注释改成用开关禁止输入

评分

参与人数 3+3 收起 理由
夏虫沉默 + 1 塞糖
Felspar + 1 精品文章
白嫩白嫩的 + 1 精品文章

查看全部评分

回复 支持 3 反对 0

使用道具 举报

Lv1.梦旅人

梦石
0
星屑
120
在线时间
17 小时
注册时间
2021-2-24
帖子
5
3
 楼主| 发表于 2021-3-3 20:53:18 | 只看该作者
zths 发表于 2021-3-3 10:19
执行window.blockInputOn=1 则禁止输入
window.blockInputOn=0允许输入
或者看注释改成用开关禁止输入 ...

感谢大佬!
回复 支持 反对

使用道具 举报

Lv1.梦旅人

梦石
0
星屑
120
在线时间
17 小时
注册时间
2021-2-24
帖子
5
4
 楼主| 发表于 2021-3-3 21:33:29 | 只看该作者
zths 发表于 2021-3-3 10:19
执行window.blockInputOn=1 则禁止输入
window.blockInputOn=0允许输入
或者看注释改成用开关禁止输入 ...

再请教一下这个代码具体该怎么用,如果当脚本输到事件里代码总是从后面被截掉一大段
回复 支持 反对

使用道具 举报

Lv3.寻梦者

梦石
0
星屑
3476
在线时间
293 小时
注册时间
2020-1-27
帖子
190
5
发表于 2021-3-4 01:20:54 | 只看该作者
随便塞到哪能执行就行。。。。。。
回复 支持 反对

使用道具 举报

Lv1.梦旅人

梦石
0
星屑
120
在线时间
17 小时
注册时间
2021-2-24
帖子
5
6
 楼主| 发表于 2021-3-4 19:49:33 | 只看该作者
zths 发表于 2021-3-4 01:20
随便塞到哪能执行就行。。。。。。

解决了,再次感谢
回复 支持 反对

使用道具 举报

您需要登录后才可以回帖 登录 | 注册会员

本版积分规则

拿上你的纸笔,建造一个属于你的梦想世界,加入吧。
 注册会员
找回密码

站长信箱:[email protected]|手机版|小黑屋|无图版|Project1游戏制作

GMT+8, 2024-11-18 11:18

Powered by Discuz! X3.1

© 2001-2013 Comsenz Inc.

快速回复 返回顶部 返回列表