我想知道Canvas动画的每个部分何时结束,以便我可以重新加载它。
每个“吊舱”都应该到达其第一次旅程的终点,然后随机到达下一个可用车站中的一个,然后以无限循环(或很长的一个循环)再次行驶。
现在,用于查找下一个工作站的代码可以正常工作,但是我无法获取每个单独广告连播的动画结尾的触发器。我知道什么时候
aPod.currentPoint + 1 == aPod.points.length - 1
吊舱已到达其目的地站,但随后没有任何反应。
在这里提琴:https://jsfiddle.net/f9nob149/1/
我已经为此努力了一个星期,确实需要帮助!
最佳答案
看来您只需要检查currentPoint
是Pod的points
的最后一点。
我创建doneCallback
的Here 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/