我试图告诉Canvas动画的每个部分何时结束,以便我可以重新加载它。
每个“pod”应该到达其第一个旅程的末尾,然后转到下一个可用站点中的随机站点,然后在无限循环(或非常长的循环)中再次执行。
现在找到下一站的代码可以正常工作,但是我无法获得每个单独pod的动画结束的触发器。
时我知道 aPod.currentPoint + 1 == aPod.points.length - 1
pod已到达目的地站,但没有任何事情发生。
在这里小提琴:https://jsfiddle.net/f9nob149/1/
我一直在抨击我的头一个星期,真的需要帮助!
答案 0 :(得分:2)
您似乎只需检查currentPoint
何时是广告管理系统points
的最后一点。
Here is a jsfiddle我创建了doneCallback
。我还必须添加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
的情况下声明的),然后将这些值转发给{{1构造函数按顺序(而不是您可能认为的名称)。还有一些浏览器会拒绝它(即Safari),并且在Pod
模式下不允许(我认为也不允许使用下一个javascript版本(ES6))。
然而,您可以使用objet作为参数:
strict