我想在画布类中使用 keyPressed 函数。但我不想立即调用这个函数。
我尝试使用等待功能,但它会导致错误(我认为它对此没有任何用处)。我该怎么办?
问问题
179 次
1 回答
0
当用户单击一个键时,AMS(应用程序管理软件)调用 keyPressed。你不能拖延。但是您当然可以根据需要自己调用 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);
}
}
于 2013-06-29T16:57:46.653 回答