javascript - Konva.js : simultaneously run tweens look out of sync

标签 javascript animation konvajs konva

情况是这样的。我有一组节点,需要它们向上移动然后向下移动。为此,我使用 Konva.Tween as in the demo 。如您所见,我在 for 循环中创建并运行补间。我想要的是所有方 block 同步移动,但看起来有些方 block 正在完全移动,但有些方 block 却发疯了,移动有延迟或其他什么。有趣的是,如果你多次点击“GO”按钮,你会发现是相同的方 block 不同步,而不是随机的,所以这是持久的。

我做错了什么,有正确的方法来实现我需要的吗?

最佳答案

将它们添加到 Konva.Group,然后在该组上运行补间。您可以在创建它们时将它们添加到组中,也可以在需要补间它们之前使用 rect.moveTo(group) [OR group.add(rect)]。

var tweenGroup = new Konva.Group();
layer.add(tweenGroup);

document.getElementById('go').addEventListener('click', () => {
    const durationSec = 0.3;
    for (const r of rects) {
        tweenGroup.add(r);
    }
    new Konva.Tween({
        node: tweenGroup,
        y: 70,
        duration: durationSec / 2,
        onFinish: function() {
            new Konva.Tween({
                node: tweenGroup,
                y: 100,
                duration: durationSec / 2
            }).play();
        }
    }).play();
})

这是更新后的代码笔,它们同步移动。 https://codepen.io/richardjonlewis/pen/VwrGqNN

关于javascript - Konva.js : simultaneously run tweens look out of sync,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/71279967/

相关文章:

javascript - 为什么clearTimeout 不适用于此代码?

javascript - D3更新模式两次绘制相同的元素

jquery - CSS3动画中的闪烁

javascript - ReactKonva不支持类型 "div"

javascript - AJAX 将 JSON 数据从 Javascript 发布到 Grails

javascript - 如何使用 mandrill 通过电子邮件发送表单信息

Android:在内部充气 RecyclerView 时,如何防止 Fragment 事务的延迟或动画跳过?

java - 定时器动画的问题

javascript - 在旋转图像上绘制的绘制位置错误?

javascript - React 中的 Konva 无限网格