是否有一种方法可以更具体地控制konva对象的拖动事件?

问题描述 投票:1回答:1

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

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

因此,有什么方法可以控制拖动事件的计时?还是可以在每个拖动事件之间设置一个小的时间间隔?

konvajs konva
1个回答
1
投票

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

[Konva正在更新位置并在每个dragmove事件上触发mousemove/touchmove事件。

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

如果您希望完全控制拖动,则可以手动实施。就像(1)监听mousedown/touchstart事件,(2)在mousemove/touchmove上移动节点,以及(3)在mouseup/touchend上停止拖动。

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

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

© www.soinside.com 2019 - 2024. All rights reserved.