繁体   English   中英

Java Robot类KeyEvent

[英]Java Robot Class KeyEvent

有没有写线的方法

r.keyPress(KeyEvent.VK_SPACE);

这将允许在Safari中运行的html 5游戏将空格键注册为游戏内发生的事件? (在游戏内部,我的意思是让游戏做出反应,好像在物理上按了“空格”一样)

例如,我已经意识到,某些KeyEvent仅在超出某些元素时才注册为已触发。 下面的代码将成功在safari的URL栏中注册一个spacebar-press事件:

import java.awt.Robot;
import java.awt.AWTException;
import java.awt.event.KeyEvent;

 public class SpaceBarPress {

    SpaceBarPress(){
    }

    public static void main (String[] args) {
        try{
            Robot r = new Robot();  //create instance of robot class
            r.mouseMove(600,323); //move cursor over top URL bar

            r.mousePress(InputEvent.BUTTON1_MASK); //bring URL bar into focus
            r.mouseRelease(InputEvent.BUTTON1_MASK);

            r.keyPress(KeyEvent.VK_SPACE); //fire spacebar event
            r.keyRelease(KeyEvent.VK_SPACE);

          }
          catch(AWTException e){
              e.printStackTrace();
          }
      }
  }

但是,当在浏览器中运行的html 5游戏上方运行相同的代码时,空格键事件将不会在游戏内部注册。 而按下物理空格键将对游戏产生影响。

机械手按键事件的执行速度比应用程序处理b的速度更快。 而是在新闻和发布事件之间使用大约40 ms的延迟

r.keyPress(KeyEvent.VK_SPACE); //fire spacebar event
r.delay(40);
r.keyRelease(KeyEvent.VK_SPACE);

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM