我想知道Canvas动画的每个部分何时结束,以便我可以重新加载它。

每个“吊舱”都应该到达其第一次旅程的终点​​,然后随机到达下一个可用车站中的一个,然后以无限循环(或很长的一个循环)再次行驶。

现在,用于查找下一个工作站的代码可以正常工作,但是我无法获取每个单独广告连播的动画结尾的触发器。我知道什么时候

 aPod.currentPoint + 1 == aPod.points.length - 1


吊舱已到达其目的地站,但随后没有任何反应。

在这里提琴:https://jsfiddle.net/f9nob149/1/

我已经为此努力了一个星期,确实需要帮助!

最佳答案

看来您只需要检查currentPoint是Pod的points的最后一点。

我创建doneCallbackHere is a jsfiddle。我还必须添加done pod属性,以便多次调用它。

顺便说一句,这太可怕了,并没有按照我认为您认为的做:

new Pod(
  startX = fromX,
  startY = fromY,
  endX = toX,
  endY = toY,
  riders = randomPass(),
  color = colorArray[riders - 1],
  points = linePoints({
    startX, startY
  }, {
     endX, endY
  }),
  currentPoint = 0)


JavaScript不支持像python这样的命名参数。这样做是将=右侧的所有值分配给在全局范围内创建的新变量(因为它们是在没有var的情况下声明的),然后按顺序将这些值转发给Pod构造函数(而不是您可能认为的名字)。另外,某些浏览器会拒绝它(例如Safari),并且在strict模式(我认为不支持下一个javascript版本(ES6))中也不允许这样做。

但是,您可以做的是使用对象作为参数:

function Pod(args){
  this.startX = args.startX;
  this.startY = args.startY;
  // Etc.
}

var pod = new Pod({
  startY: fromY,
  startX: fromX // Order does not matter anymore.
  // Etc.
});

关于javascript - 如何判断Canvas动画何时结束,我们在Stack Overflow上找到一个类似的问题:https://stackoverflow.com/questions/32950796/

10-12 12:51
查看更多