我尝试使用顺序动画同时为多个对象设置动画。出于我的目的,我需要从顺序动画(和数字动画)清理的外部访问它。效果很好,但设置时一次只能动画一个对象。如果我为每个对象定义一个数字动画,则可以使用-但我不想这样做,因为以后我想在一个循环中分配动画,该循环的大小会有所不同。因此,我故意调用了相同编号的动画对象。有没有一种方法可以对一堆对象进行动画处理而无需为其定义每个数字动画?这是一些代码:
Component.onCompleted: {
seq.access.target = rec1
seq.access.property = "y"
seq.access.to = 50
seq.start()
seq.access.target = rec2
seq.access.property = "y"
seq.access.to = 50
seq.start()
}
Rectangle{
id: rec1
width: 50
height: 50
color: "red"
}
Rectangle{
id: rec2
x: 100
width: 50
height: 50
color: "blue"
}
SequentialAnimation{
id: seq
property alias access: num
NumberAnimation{id: num}
}
更新嗨,伙计们,感谢您的答复。上面的问题已经由GrecKo的解决方案解决了,但是我仍然还没有...我需要能够使每个目标或多个目标设置成一个循环。我认为通过使上述代码正常工作,如果相同的目标在数组中的位置,则应该/应该工作:
...
property int i
Component.onCompleted: {
var array = [rec1, rec2]
for(i = 0; i < array.length; i++){
seq.access.targets = [array[i]]
seq.access.property = "y"
seq.access.to = 50
seq.start()
}
}
Rectangle{
id: rec1
width: 50
height: 50
color: "red"
}
Rectangle{
id: rec2
x: 100
width: 50
height: 50
color: "blue"
}
SequentialAnimation{
id: seq
property alias access: num
NumberAnimation{id: num}
}
但这是行不通的。这就是我需要做的。谢谢
如果要将同一动画应用于多个对象,则可以使用该targets
属性为动画指定多个目标。
在您的示例中,您将像这样使用它:
Component.onCompleted: {
seq.access.targets = [rec1, rec2]
seq.access.property = "y"
seq.access.to = 50
seq.start()
}
本文收集自互联网,转载请注明来源。
如有侵权,请联系[email protected] 删除。
我来说两句