非常感谢他所做的工作,但是我们无法控制动画的播放和回放。我想扩展功能以支持播放和暂停选项,以在传单上为Polyline
设置动画。有什么方法可以在按钮单击时添加暂停和播放动画吗?请指出方向。如果有更好的方法,请告诉我。
我检查了代码,发现当_snakingVertices
变量的值变为_snakeLatLngs.length-1
但无法使用时,动画停止了。这是一个独特的挑战。
可以在此处找到javascript代码Leaflet.SnakeAnim
最佳答案
存储从调用L.Util.requestAnimFrame()
发生的here返回值。
添加名为snakePause
或snakeStop
或类似名称的新方法,并使用先前存储的值调用L.Util.cancelAnimFrame
。根据需要添加健全性检查(检查是否确实存在储值等)。
添加另一个名为snakeResume
或类似名称的方法,然后调用L.Util.requestAnimFrame()
重新启动对this._snake()
的延迟调用。添加健全性检查,以使对snakeResume
的多次调用不会产生不良影响(请检查是否没有来自先前requestAnimFrame
的存储的返回值,等等)。
暂停和恢复是纯粹的计时器问题,应单独使用requestAnimFrame
和cancelAnimFrame
进行处理,并注意任何潜在的比赛条件。除了严格必要的数据(延迟调用的存储值,以及用于计时线路增长的存储的performance.now
值)外,根本不需要弄乱数据。
关于javascript - 如何扩展Ivan Sanchez的Leaflet.Polyline.SnakeAnim来支持“snakepause”和“snakeplay”事件,我们在Stack Overflow上找到一个类似的问题:https://stackoverflow.com/questions/52816665/