我正在尝试制作一个动画,在其中我可以指定速度(而不是持续时间)并且永远循环。我想出了两个不起作用的例子:
FirstTry.qml
import Qt 4.7
Rectangle {
width: 100; height: 100
Text {
text: "hello"
NumberAnimation on x {
to: 50;
loops: Animation.Infinite;
duration: 50 * Math.abs(to - from)
}
}
}
hello
我在屏幕上发疯时收到以下运行时警告(很公平)。
QDeclarativeExpression: Expression "(function() { return 50 * Math.abs(to - from) })" depends on non-NOTIFYable properties:
QDeclarativeNumberAnimation::to
QDeclarativeNumberAnimation::from
SecondTry.qml
import Qt 4.7
Rectangle {
width: 100; height: 100
Text {
text: "hello"
SmoothedAnimation on x {
to: 50;
loops: Animation.Infinite;
velocity: 50
}
}
}
这更像是一个谜——SmoothedAnimation
只是拒绝循环!动画运行一次,然后就是这样。
所以我有以下问题:
在第一个示例中是否有合法的方法来指定速度?我知道SmoothedAnimation
是从 派生的NumberAnimation
,所以也许在 QML 中是可能的,而不仅仅是在 C++ 中。
有没有办法制作SmoothedAnimation
循环?第二个例子是没有工作的错误还是我错过了什么?
有没有其他方法可以同时实现这两种行为?