非常感谢他所做的工作,但是我们无法控制动画的播放和回放。我想扩展功能以支持播放和暂停选项,以在传单上为Polyline设置动画。有什么方法可以在按钮单击时添加暂停和播放动画吗?请指出方向。如果有更好的方法,请告诉我。

我检查了代码,发现当_snakingVertices变量的值变为_snakeLatLngs.length-1但无法使用时,动画停止了。这是一个独特的挑战。

可以在此处找到javascript代码Leaflet.SnakeAnim

最佳答案

存储从调用L.Util.requestAnimFrame()发生的here返回值。

添加名为snakePausesnakeStop或类似名称的新方法,并使用先前存储的值调用L.Util.cancelAnimFrame。根据需要添加健全性检查(检查是否确实存在储值等)。

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



暂停和恢复是纯粹的计时器问题,应单独使用requestAnimFramecancelAnimFrame进行处理,并注意任何潜在的比赛条件。除了严格必要的数据(延迟调用的存储值,以及用于计时线路增长的存储的performance.now值)外,根本不需要弄乱数据。

关于javascript - 如何扩展Ivan Sanchez的Leaflet.Polyline.SnakeAnim来支持“snakepause”和“snakeplay”事件,我们在Stack Overflow上找到一个类似的问题:https://stackoverflow.com/questions/52816665/

10-08 21:01