0
我想在canvas類中使用keyPressed函數。但我不想立即調用這個函數。
我嘗試使用等待功能,但它會導致錯誤(我認爲這沒有任何用處)。我該怎麼辦?如何在特定時間之後調用keyPressed函數?
我想在canvas類中使用keyPressed函數。但我不想立即調用這個函數。
我嘗試使用等待功能,但它會導致錯誤(我認爲這沒有任何用處)。我該怎麼辦?如何在特定時間之後調用keyPressed函數?
當用戶單擊某個密鑰時,keyPressed由AMS(應用程序管理軟件)調用。你不能拖延。 但你當然可以自己調用keyPressed。如果你想從現在起10秒內調用keyPressed,你應該用一個定時器和一個循環創建一個線程,詢問是否現在已經過去了10秒。 事情是這樣的:(未測試)
class keyPressedAfterSeconds implemments Runnable {
MyCanvasObject myCanvas = null;
int seconds = 10; // Default
long startTime;
public keyPressedAfterSeconds(MyCanvasObject myCanvas, int seconds) {
this.myCanvas = myCanvas;
this.seconds = seconds;
new Thread(this).start();
}
public run() {
startTime = System.currentTimeMillis();
while(System.currentTimeMillis()-startTime<seconds*1000) {
try { // Wait 100 ms and ask again
Thread.sleep(100);
} catch (Exception e) {}
}
myCanvas.keyPressed(someKeycode);
}
}
然後在MyCanvasObject中調用new keyPressedAfterSeconds(this,10); –
我可以10小時後不相信堆棧溢出!!!!!!!!沒有答案 – zahraTZ