【问题标题】:Is there a way to control more specifically the drag event of konva objects?有没有办法更具体地控制 konva 对象的拖动事件?
【发布时间】:2020-04-29 07:26:14
【问题描述】:

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

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

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

【问题讨论】:

    标签: konvajs konva


    【解决方案1】:

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

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

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

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

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

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

    【讨论】:

    • 这有帮助。非常感谢。
    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2020-03-28
    • 2011-12-21
    • 2023-02-02
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多