我试图实现一个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