首页 > 解决方案 > 如何在循环内多次调用我的内部 setInterval() 函数?(具体问题)

问题描述

我正在为我在 setInterval 中调用的函数而苦苦挣扎。特别是,我想回忆一下我的渲染函数,它从不同的点开始绘制不同的线(给定数组中的一组值),但是由于我将这些值迭代到一个循环中,似乎我可以在 i= 时启动第一个 setInterval 0,但是当i = 1 ecc时我无法停止它然后重新启动它......我该如何解决这个问题?

 var degree= [2,0,3,1];
function choose_velocity(degree) {
  let v0; // please give a better name
  for(let i = 0;i < degree.length; i++) {
    var difference = Math.abs(degree[i+1] - degree[i]);
    if (difference === 1) { // always use triple equal (it will compare the type and the value as well
      v0 = 25;
    }
    if (difference === 2) {
      v0 = 36;
    }
    if (difference === 3) {
      v0 = 44;
    }
    if (difference === 4) {
      v0 = 51;
    }
    if (difference === 5) {
      v0 = 57;
    }
    if (difference === 6) {
      v0 = 62;
    }

    if (degree[i+1] - degree[i] < 0) {
      invert_sign = true; // try to use camelCase convention in Javascript
    }

    StartInterval(0.2); // don't name your function with Pascal convention unless you're creating a Constructor function
    console.log("entro convelocità", v0);
  }
}

function StartInterval(frequency) {
  var clear = setInterval(function() {
  render( t += 0.03, clear, invert_sign);
  }, frequency);
}

Codepen 代码在这里

我在这里寻找过去给出的解决方案,但我无法解决我的问题,所以请耐心等待.. 无论如何提前谢谢你!:)

标签: javascriptloopscanvassetinterval

解决方案


推荐阅读