簡體   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