我試圖實現一個simple blckjack game,問題是timeOut函數不能按我期望的那樣工作。我寫了一些調試信息來幫助你理解我的意思。有兩個字,我看到的是該函數被調用一次,而不是由於某種原因退出該函數,程序繼續執行自身,並重新調整到超時函數... 我想要的是暫停程序執行以等待用戶選擇是否要求新卡ot停止。 提前謝謝!Javascript超時功能 - 奇怪的行爲
回答
調用waitForUserInput()方法在哪裏?另外,爲什麼使用超時抓取用戶輸入?爲什麼不直接訂閱鼠標點擊事件?
waitForUserInput()在185行調用 即時通訊新的JS這是我開發的... – user1688617
setTimeout
不會停止腳本的執行。這只是爲了延遲執行。在你調用它之後 - 程序的執行將像往常一樣繼續,但是在指定的時間之後 - 作爲第一個參數傳遞的函數將被執行。等待用戶輸入 - 看看點擊/鍵入/ keydown等事件。
你不應該在JS中做下面的事情。 JS總是單線程,這樣的循環會凍結你的界面。在這種情況下,您應該在卡片塊上放置onclick
事件,並在其中放置代碼,以執行您所需的操作。
while(true){
waitForUserInput();
if(requestCard){
userHand.hitMe();
var userHandCards = userHand.printHand().split(",");
displayCard(userHandCards[cardIndex]);
cardIndex++;
//console.log(">"+userHand.score());
if(userHand.score()>21){
break;
}
}else{
break
}
};
我要的是暫停程序執行,以等待用戶選擇是否申請新卡OT停止
您應該將一些按鈕與指定onclick處理。只需根據點擊的按鈕運行你需要的代碼。現在我看不到用戶如何對您的程序說出他的選擇。如果這是一個鍵盤命令(「s」被按下而不是停止,「n」 - 下一張卡) - 您可以嘗試使用document.onkeyup
。
我在JS代碼只有8天。像你這樣做的每個提議都很有幫助。謝謝。 – user1688617
我不能說如何讓你的程序工作。它已經夠大了。但是如果你對JS非常陌生 - 查看不同的開發人員工具。通常你可以在任何瀏覽器中用F12調用它們(FireFox除外 - 你應該首先安裝Firebug擴展)。你可以在那裏調試你的代碼。正如我所說的 - 使用可用的事件來獲取用戶輸入。 –
我已經知道這些工具:) – user1688617
- 1. JavaScript警告功能的奇怪行爲
- 2. 奇怪的Javascript功能迴路行爲
- 3. javascript功能代理奇怪
- 4. 選擇(2)超時的奇怪行爲
- 5. 奇怪的行爲與功能strrchr
- 6. 功能陣列和奇怪的行爲
- 7. Typescript功能奇怪的空白|| &&行爲
- 8. 「新PDO」 &__autoload功能奇怪的行爲
- 9. Python的奇怪行爲功能
- 10. 功能nl2br PHP奇怪的行爲
- 11. jQuery - 奇怪的功能行爲
- 12. Symfony登錄功能奇怪的行爲
- 13. 奇怪避開功能的行爲3
- 14. 奇怪的微調功能行爲
- 15. 奇怪功能
- 16. JavaScript的計時器奇怪的行爲
- 17. 奇怪的功能
- 18. javascript日期時區奇怪的行爲
- 19. javascript的奇怪行爲
- 20. JavaScript date.setMilliseconds奇怪的行爲?
- 21. 奇怪的Javascript行爲
- 22. Javascript的奇怪行爲__defineSetter__
- 23. 奇怪的JavaScript行爲?
- 24. Photoshop Javascript的奇怪行爲
- 25. JavaScript奇怪的空行爲
- 26. javascript奇怪的行爲
- 27. javascript的奇怪行爲
- 28. javascript indexOf奇怪的行爲
- 29. 奇怪的Javascript行爲
- 30. 奇怪的SVG/javascript行爲
你的代碼在哪裏? – simonlchilds
@simonlchilds查看鏈接。 http://venko.byethost14.com/ – F0G
我已經在這個論壇上使用相同的函數嘗試了一個代碼提議,它的行爲方式也是一樣的。 – user1688617