暂停聆听鼠标/键事件,直到声音结束

时间:2017-05-31 21:11:57

标签: java javafx mouseevent onclicklistener keyboard-events

在我的游戏中,如果我选择了好的答案,我会发出掌声,然后我转到下一个问题。因此,在async function CheckSitesV1() { let results = []; for (let i = 0; i < sitesArray.length; i++) { let opts = { method: "GET", uri: sitesArray[i] }; const resp = await rp.get(opts).catch(e => e); results.push(resp); } return results; } CheckSitesV1().then(console.log)中调用方法validate()后,我会播放setOnMousePressed并执行此操作:

wav

要暂停所有内容,直到声音结束,然后我调用方法try { Thread.sleep(1700); } catch (InterruptedException e) { e.printStackTrace(); } 转到下一个问题。

在1700ms通过之前单击多次时会出现问题。在接下来的问题中,即使不再点击,它也会计算所有多余的先前点击次数,并且会导致reset()validate(),所以最终的结果是一团糟。

如何在声音结束前暂停收听鼠标/键事件?

1 个答案:

答案 0 :(得分:1)

正如Yahya所说,只需声明一个布尔值,例如

boolean listenForMouseEvents = true;

设置if条件,只有在validate()为真时才能调用listenForMouseEvents

if (listenForMouseEvents) {
  validate();
}

然后,单击后,将listenForMouseEvents设置为false。