Warning: file_get_contents(/data/phpspider/zhask/data//catemap/8/meteor/3.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
如何在JavaScript中停止指定的TimedLoop_Javascript - Fatal编程技术网

如何在JavaScript中停止指定的TimedLoop

如何在JavaScript中停止指定的TimedLoop,javascript,Javascript,现在,我的代码如下所示: function shoot1() { timedLoop(10, function(a) { var lazorXposition = getXPosition("lazor1"); if (Yposition >= -25) { showElement("lazor1"); setPosition("lazor1", lazorXposition, Yposition - 4); } else { sto

现在,我的代码如下所示:

function shoot1() {
  timedLoop(10, function(a) {
    var lazorXposition = getXPosition("lazor1");
    if (Yposition >= -25) {
      showElement("lazor1");
      setPosition("lazor1", lazorXposition, Yposition - 4);
    } else {
  stopTimedLoop(a);
    }
  });
}
它的功能是在屏幕上逐步移动图像。我的问题是,每次执行stopTimedLoop时,程序中的每个定时循环都会停止。如何指定stopTimedLoop要停止的定时循环?我知道您可以这样做,但我似乎不知道在上面的代码中,我是如何尝试识别定时循环的,但即使我在stopTimedLoop命令中指定了,它仍然会停止当前正在循环的所有函数。我目前正在尝试使用code.org中的AppLab来制作一个简单的程序,这是网站对stopTimedLoop命令的说明: 参数

是否需要名称类型?描述 循环编号要停止的
timedLoop()
函数返回的值。如果未包含,则所有正在运行的定时循环都将停止。 提示

如果没有参数,所有正在运行的定时循环都将停止。 如果要停止特定循环,需要保存timedLoop()返回的值,例如
var i=timedLoop(毫秒,回调)

听起来您需要保存对定时循环的引用,并将其作为参数传递给stopTimedLoop函数。我会尝试以下方法:

function shoot1() {
  var thisLoop = timedLoop(10, function(a) {
    var lazorXposition = getXPosition("lazor1");
    if (Yposition >= -25) {
      showElement("lazor1");
      setPosition("lazor1", lazorXposition, Yposition - 4);
    } else {
  stopTimedLoop(thisLoop);
    }
  })
);
}

如果要停止特定循环,需要保存timedLoop()返回的值,
-然后这样做,很明显,我知道怎么做,这就是问题所在
var i=timedLoop(ms,callback)<代码>停止时间循环(i)泰!