1

例如,通过设置stage.draggable(true) 我们可以使舞台可拖动。

默认情况下,它是一个连续的运动,这意味着每次鼠标在舞台上施加拖动时,都会调用拖动事件。这会导致我的应用程序滞后,可能是因为在每次拖动事件后需要重新绘制大量形状。

那么,有没有办法控制调用拖动事件的时间呢?或者也许我可以在每个拖动事件之间设置一个小的时间间隔?

4

1 回答 1

1

不,Konva您无法控制调用拖动事件的时间。

Konvadragmove正在更新每个事件的位置和触发mousemove/touchmove事件。

但它不会立即绘制。它使用requestAnimationFrame尽快绘制。

如果您想完全控制拖动,您可以手动实现它。像(1)监听mousedown/touchstart事件,(2)移动节点mousemove/touchmove和(3)停止拖动mouseup/touchend

在最好的情况下,您需要找到优化绘图的方法。通常缓存会提高绘图的性能。您可以在 上缓存dragstart和清除缓存dragend

有关更多性能提示,请查看此处:https ://konvajs.org/docs/performance/All_Performance_Tips.html

于 2020-04-29T18:53:51.207 回答