Javascript 如何扩展Ivan Sanchez';s传单.Polyline.snakenaim以支持';蛇停顿';和';蛇戏';事件

Javascript 如何扩展Ivan Sanchez';s传单.Polyline.snakenaim以支持';蛇停顿';和';蛇戏';事件,javascript,animation,leaflet,polyline,Javascript,Animation,Leaflet,Polyline,我很欣赏他所做的工作,但是我们无法控制动画的暂停和播放。我想扩展功能以支持播放和暂停选项,以便在传单上设置多段线的动画。有没有办法在单击按钮时添加暂停和播放动画?请指出方向。如果有更好的方法,请让我知道 我检查了代码,发现当\u snakingVertices变量的值变为\u snakelatlings.length-1时,动画停止,但无法将其投入使用。这是一个独特的挑战 javascript代码可以在这里找到存储调用的返回值 添加一个名为snakePause或snakeStop之类的新方法,并

我很欣赏他所做的工作,但是我们无法控制动画的暂停和播放。我想扩展功能以支持播放和暂停选项,以便在传单上设置
多段线的动画。有没有办法在单击按钮时添加暂停和播放动画?请指出方向。如果有更好的方法,请让我知道

我检查了代码,发现当
\u snakingVertices
变量的值变为
\u snakelatlings.length-1
时,动画停止,但无法将其投入使用。这是一个独特的挑战


javascript代码可以在这里找到

存储调用的返回值

添加一个名为
snakePause
snakeStop
之类的新方法,并使用先前存储的值调用。根据需要添加健全性检查(检查是否确实存在存储值等)

添加另一个名为
snakeResume
或类似的方法,并调用
L.Util.requestAnimFrame()
以重新启动对
this的延迟调用。添加健全性检查,以使对
snakeResume
的多次调用不会产生不良影响(检查是否没有以前的
requestAnimFrame
中存储的返回值等)



暂停和恢复是一个纯粹的计时器问题,应单独使用
requestAnimFrame
cancelAnimFrame
进行处理,并注意任何潜在的竞争条件。除了严格必要的数据(延迟调用的存储值和存储的
性能。现在
值用于调整线路增长的时间)之外,根本不需要处理数据。

他在stackoverflow上很活跃,所以他可能会给你一些关于如何实现这一点的提示。