我不知道我尝试做的事情是否可能,尽管在我看来应该是......我尝试使用顺序或并行动画为对象设置动画。如果数字动画属性在其内部正常设置(如文档所示),则效果很好,但我不想将数字动画对象硬编码为单个设置/对象,我更希望顺序动画处于顶层,从而访问来自其他地方的数字动画对象(在顺序动画内)...有趣的是,当我进行所需的设置时,数字动画对象上的控制台输出显示一切都已设置,但仍然没有动画。这是我到目前为止得到的:
Component.onCompleted: {
anim.accessToNum.target = rect
anim.accessToNum.property = "x"
anim.accessToNum.to = 100
anim.accessToNum.duration = 1000
}
Rectangle {
id: rect
width: 50; height: 50
color: "red"
}
SequentialAnimation {
id: anim
running: true
property var accessToNum: num
NumberAnimation { id: num}
}
谢谢。
最佳答案
你有
running: true
设置动画,因此它会立即开始动画,无需目标
、属性
等。
这样做:
import QtQuick 2.0
import QtQuick.Window 2.0
Window {
width: 600
height: 400
visible: true
Component.onCompleted: {
anim.accessToNum.target = rect
anim.accessToNum.property = "x"
anim.accessToNum.to = 100
anim.accessToNum.duration = 1000
anim.start() // or: anim.running = true
}
Rectangle {
id: rect
width: 50
height: 50
color: "red"
}
SequentialAnimation {
id: anim
property var accessToNum: num
NumberAnimation {
id: num
}
}
}
不相关的提示:尽可能使用alias
而不是var
;稍微便宜一点:
property alias accessToNum: num
关于javascript - 如果在 qml 中的其他地方定义了数字动画属性,则对象不会动画,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/37193661/