说我有以下代码:
Rectangle {
id: rect
property int minVal : 0
property int maxVal : 10
property int duration: 1000
SequentialAnimation {
loops: Animation.infinite
NumberAnimation {
target: rect; property: "x"
from: minVal; to: maxVal
duration: duration
}
NumberAnimation {
target: rect; property: "x"
from: maxVal; to: minVal
duration: duration
}
}
}
然后,我将这个对象的minVal
,maxVal
和duration
属性连接到滑块,以便我可以使用此效果。
有没有办法强制动画使用min / maxVal的新值?
目前,似乎动画初始化时出现的minVal
/ maxVal
值会被"烘焙"进入动画,没有办法强迫这些重新计算/重新计算
以前,只要需要进行其中一项更改,我就可以放弃丢弃整个QML画布。但在这种情况下,它并不实用,所以我想知道是否还有其他选择?
答案 0 :(得分:1)
我无法找到一种方法来“烘烤”这些价值观。对我来说,至少,这可以按照我的预期运作:
Button {
id: but
property int count: 0
property int minX: 0
property int maxX: 1000
text: 'start' + x
onCountChanged: {
minX += 10
maxX -= 10
}
onClicked: ani.start()
}
SequentialAnimation {
id: ani
NumberAnimation {
target: but
property: 'x'
from: but.minX
to: but.maxX
}
ScriptAction {
script: { but.count += 1 }
}
}
我尽可能地避免以某种方式烘焙的绑定。
我错过了你的问题吗?