gpt4 book ai didi

javascript - 将元素添加到带有动画的转发器

转载 作者:行者123 更新时间:2023-12-02 20:26:05 24 4
gpt4 key购买 nike

我有一个中继器,其元素在创建时会进行动画处理。

Repeater {
model : 0

Image {
...

Animation {
...
}
}
}

如果我在前一个元素的动画完成后向模型添加一个元素,则一切正常。但如果我之前添加一个元素,它就不起作用了。例如,如果我有一把可以发射子弹的枪,如果我等到子弹的动画结束,一切都会正常。但如果我想在第一颗子弹结束之前再发射一颗子弹,第一颗子弹就会消失,我只能看到第二颗子弹的动画。

我应该怎么做才能看到所有动画?

最佳答案

也许您的模型或委托(delegate)或布局(项目重叠...)有问题,因为在这里,这工作正常:

import QtQuick 2.0;

Rectangle {
width: 400;
height: 300;

Timer {
running: true;
repeat: true;
interval: 1000;
onTriggered: { modelTest.append ({ "bg" : Qt.hsla (Math.random (), 0.85, 0.45, 1.0).toString () }); }
}
Flow {
anchors.fill: parent;

Repeater {
model: ListModel {
id: modelTest;
}
delegate: Rectangle {
id: rect;
color: model.bg;
width: 50;
height: width;
scale: 0.0;

PropertyAnimation {
target: rect;
property: "scale";
from: 0.0;
to: 1.0;
duration: 450;
running: true;
loops: 1;
}
}
}
}
}

请记住,只有 ListModel 和 QAbstractListModel 能够在不重置整个委托(delegate)的情况下动态添加新项目,其他(变体列表、JS 数组、数字)将导致所有委托(delegate)在每次模型修改时重新实例化...

关于javascript - 将元素添加到带有动画的转发器,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/18120439/

24 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com