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

Project1

 找回密码
 注册会员
搜索

如何使用腳本模擬按下[特殊]按鈕的....[求助]

查看数: 3851 | 评论数: 5 | 收藏 1
关灯 | 提示:支持键盘翻页<-左 右->
    组图打开中,请稍候......
发布时间: 2021-5-26 13:12

正文摘要:

本帖最后由 play337 于 2021-5-26 15:29 编辑 我如果使用 PictureCallCommon.js 01. 創建一個[圖片1]按下 k 鍵 02. 事件輸入腳本 Input._currentState["k"] = true; 結果他會按一下有反應... 但是第二下就沒有 ...

回复

zths 发表于 2021-5-26 15:57:34
本帖最后由 zths 于 2021-5-26 15:59 编辑

fireKeyEv({keyCode: 99});

https://keycode.info/

点评

神了!!!! 666666  发表于 2021-5-26 16:09
play337 发表于 2021-5-26 15:51:05
Game_Temp.prototype.loadInput = function() {
        Input.keyMapper[97] = 'n1';
        Input.keyMapper[98] = 'n2';
        Input.keyMapper[99] = 'n3';
    Input.keyMapper[101] = 'n5';
        Input.keyMapper[74] = 'j';
        Input.keyMapper[75] = 'k';
        Input.keyMapper[76] = 'l';
    Input.keyMapper[73] = 'i';
};

----------------------------

如果我要從腳本裡面 呼叫按下 n3 這個按鈕 我應該要如何做呢 ?

我現在在腳本用 fireKeyEv(n3,300)

結果還是錯誤...
play337 发表于 2021-5-26 15:48:00

ReferenceError: n3 is not defined
zths 发表于 2021-5-26 14:33:23
本帖最后由 zths 于 2021-5-26 15:28 编辑

  1. //KeyEvent 事件属性 或者一个按键字(仅限 a-z 0-9)
  2. function fireKeyEv(keyOrOption,time){
  3.     return new Promise(function(r,rj){
  4.         var opt;
  5.         if (typeof keyOrOption === 'string' || keyOrOption instanceof String){
  6.             var keycode = keyOrOption.toUpperCase().charCodeAt(0);
  7.             opt = {
  8.                 key: keyOrOption[0],
  9.                 which: keycode,
  10.                 code: "Key"+keyOrOption.toUpperCase()[0],
  11.                 keyCode: keycode
  12.             };
  13.         }else{
  14.             opt = keyOrOption;
  15.         }
  16.         if(time === undefined){
  17.             time = 300;
  18.         }
  19.         var downEv = new KeyboardEvent("keydown", opt);
  20.         var pressEv = new KeyboardEvent("keypress", opt);
  21.         var upEv = new KeyboardEvent("keyup", opt);
  22.         document.dispatchEvent(downEv);
  23.         var inv = setInterval(function(){
  24.             document.dispatchEvent(downEv);
  25.             document.dispatchEvent(pressEv);
  26.         }, 500);
  27.         setTimeout(function(){
  28.             r();
  29.             clearInterval(inv);
  30.             document.dispatchEvent(pressEv);
  31.             document.dispatchEvent(upEv);
  32.         }, time)
  33.     });
  34. }
  35. (async function(){
  36.     await fireKeyEv("x");
  37.     await fireKeyEv({keyCode: 40});//{key:"ArrowDown", which:40, keyCode:40, code:"ArrowDown"}
  38.     await fireKeyEv("z");
  39.     await fireKeyEv("z");
  40. })();
复制代码

试试.

评分

参与人数 1+1 收起 理由
白嫩白嫩的 + 1 z大佬每次都能救我们于水火之中.

查看全部评分

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

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

GMT+8, 2025-1-9 02:59

Powered by Discuz! X3.1

© 2001-2013 Comsenz Inc.

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