设置超时代码无法正常工作

时间:2014-12-03 21:34:44

标签: settimeout

我想设置一个超时并在循环结束时停止一个函数。

这是我的代码,底部设置了超时功能。

//Drawing the car turning and changing speed
function drawCar() {

var cx = canvas.width/2;
var cy = canvas.height/2;

var totalcars = 2;
var car_distance = 100;

   for (i = 0; i <= totalcars; i++) {
          // Get random positions for stars.
          var x1 = Math.floor(Math.random() * 400);
          var y1 = Math.floor(Math.random() * 400);

          if (x1 >= 190 && y1 >= 0) {
          x1 += (speed1 * mod1) * Math.cos(Math.PI / 180 * angle1);
          y1 += (speed1 * mod1) * Math.sin(Math.PI / 180 * angle1);

          context.save();
          context.translate(x1, y1);
          context.rotate(Math.PI / 180 * angle1);
          context.drawImage(car1, -(car1.width / 1), -(car1.height / 1));
          context.restore();
          }
}
if (i == totalcars) {
    return;
}
setTimeout(drawCar, 2000);
}

1 个答案:

答案 0 :(得分:0)

setTimeout用于指定某个函数将来启动一段时间;你所写的内容确保你的drawCar将永远再次执行(暂停后)。

如果删除对setTimeout的调用,则在循环结束时您的函数将停止。 (而最后的if是没有意义的:函数将返回任何一种方式。)