Javascript while循环中的setInterval无效

Javascript while循环中的setInterval无效,javascript,html5-canvas,Javascript,Html5 Canvas,我是stackoverflow的老读者,但我是新成员,这是我的第一个问题:我正在尝试用HTML5画布编写一个游戏。但是setInterval并不是在while循环中启动的。我的代码: var text = "Message"; var exit = 0; while(exit==0) { drawLifeBar(100); var balls = new Array(); var startInterval = setInterval(function() { intervalLoop(ball

我是stackoverflow的老读者,但我是新成员,这是我的第一个问题:我正在尝试用HTML5画布编写一个游戏。但是setInterval并不是在while循环中启动的。我的代码:

var text = "Message";
var exit = 0;
while(exit==0)
{
drawLifeBar(100);
var balls = new Array();
var startInterval = setInterval(function() { intervalLoop(balls);},50);
text += "\nYour level: " + level;
alert(text);
}
我得到了许多警报框循环工作,但无法进入setInterval。当我取消while循环时,setInterval起作用。这个while循环有什么问题


附言:这是一个简单的投球游戏。球落下,如果你接球,那么你就平了。如果没有,游戏结束。它在没有while循环的情况下运行良好。在while循环中,我试图做到这一点:若你们抓到了足够的球,那个么升级++,关闭间隔并重新启动游戏setInterval。如果游戏结束,那么exit=true,closeinterval并结束游戏。

我猜了一下你想做什么

function funcName() {
    alert("test");
}

var func = funcName();
var run = setInterval("func",10000)
我将你的函数命名为nextLevel,因为它实际上是。。我让它启动intervalLoop,在这种情况下,实际上不需要设置间隔

当intervalLoop完成它正在做的任何事情时,它应该调用nextLevel前进

在最底层,我打电话给nextLevel开始整个过程

var text = "Message";
var exit = 0;

function nextLevel() {
  drawLifeBar(100);
  var balls = new Array();
  var startInterval = setInterval(function() { intervalLoop(balls);},50);
  text += "\nYour level: " + level;
  alert(text);
} 

// Missing from the code, so making something up
function intervalLoop(balls) {
  // Do something! The user one, restart the main loop
  // User won! Give him the next level
  nextLevel();
}


// And start the whole process here
nextLevel();

你预计会发生什么?发生了什么事?什么是intervalLoop?去掉while循环,将间隔放在函数中。Kevin的部分评论是因为您将设置多个要执行的间隔,startInterval将只包含最后一个间隔集的id。旁注:您的代码不完整。。。退出永远不会设置为非零。虽然您可能认为您已经提供了足够的代码,但实际的代码才是您真正需要提供的。。。虫子有时存在于我们从未想过的地方!setInterval和intervalLoop函数在没有while循环的情况下工作正常。就在clearInterval之前,我正在更改intervalLoop函数中的exit变量。我最近看到了很多新数组而不是[]。Interval不应该在循环中Jeremy,您对程序的猜测是对的,但这个解决方案不起作用。我试着用ClearIntervalsStartInterval;startGame;但一旦我清除了间隔,它就再也不会开始了您没有为我们中的任何人显示足够的代码来真正帮助您。。我在猜测一些事情。。。
var text = "Message";
var exit = 0;

function nextLevel() {
  drawLifeBar(100);
  var balls = new Array();
  var startInterval = setInterval(function() { intervalLoop(balls);},50);
  text += "\nYour level: " + level;
  alert(text);
} 

// Missing from the code, so making something up
function intervalLoop(balls) {
  // Do something! The user one, restart the main loop
  // User won! Give him the next level
  nextLevel();
}


// And start the whole process here
nextLevel();