将元素添加到具有动画的中继器中
Add an element to a repeater with animation
我有一个中继器,在创建元素时会对其进行动画处理。
Repeater {
model : 0
Image {
...
Animation {
...
}
}
}
如果在上一个元素的动画完成后向模型中添加一个元素,则一切都正常。但是如果我之前加了一个元素,它就不起作用了。例如,如果我有一把能射出子弹的枪,如果我等到子弹的动画结束,一切都会正常工作。但如果我想在第一颗子弹结束前再射出一颗子弹,第一颗就会消失,我只看到第二颗的动画。
我应该怎么做才能看到所有的动画?
也许你的模型、代理或布局有问题(项目重叠…),因为在这里,这很好:
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能够在不重置整个委托的情况下动态添加新项,另一个(变体列表、JS数组、数字)将导致所有委托在每次修改模型时重新初始化。。。
相关文章:
- 获取中继器控件ASP.Net中显示的单击项目文本框
- 需要在量角器中找到使用ng中继器的li元素的数量
- 如何在中继器中找到标头控制
- 让ASP.NET中继器设置一个动态名称
- 如何在使用Protractor测试时找到ng中继器的最后一个元素
- 如何在AnglujarJS ng中继器中选择特定元素
- 具有多个值的AngularJS滤波器中继器
- 量角器-如何从中继器而不是元素中获得实际值
- 中继器控件内的 IF 条件
- ng中继器打印结果0;当我运行函数时
- 如何在ng中继器运行中执行功能
- 修改asp.net中继器中的嵌入超链接
- 使用 jquery 动画幻灯片使用角度中继器切换
- .toggle() 适用于 ACF 中继器中的所有内容
- 带有中继器的 AngularJS 指令
- angularJS中继器按键错误
- AngularJS-如何在ng中继器中调用以项值为参数的控制器函数
- AngularJS-你能在一个javascript块中引用一个中继器变量吗
- 将元素添加到具有动画的中继器中
- 中继器更新时使用动画