动画(Animation)和过度(Transition)元素
- Transition - 状态改变的过度动画
- SequentialAnimation - 串行执行动画
- ParallelAnimation - 并行执行动画
- Behavior - 为属性变化指定默认动画
- PropertyAction - 动画中设置立即改变的属性值(Sets immediate property changes during animation)
- PauseAnimation - 在动画中引入暂停
- SmoothedAnimation - 运行属性平滑的过渡到一个新的值
- SpringAnimation - 以弹跳式的方式给属性设置一个新值
- ScriptAction - 动画中执行脚本
动画属性元素的数据类型
- PropertyAnimation - 属性改变动画
- NumberAnimation - qreal类型属性改变动画
- Vector3dAnimation - QVector3d类型属性改变动画
- ColorAnimation - 颜色改变动画
- RotationAnimation -旋转动画
- ParentAnimation - parent更改动画
- AnchorAnimation - 描点改变动画
在QML中,向属性值应用animation元素来创建动画.Animation元素通过篡改属性的值来产生平滑的过度.同样,也可使用状态过度(state transition)向状态变化设置一个动画.
要创建动画,需要使用与要创建动画的属性类型相匹配的animation元素,应用的动画(animation)与需要的行为类型有关.
触发动画
有很多种方式在对象上设置动画.
直接的属性动画Direct Property Animation
要实现立即移动或动画移动,可直接设置属性值.这可以在信号处理函数或附加属性中实现
Rectangle {
id: blob
width: 75; height: 75
color: "blue"
MouseArea {
anchors.fill: parent
onClicked: blob.color = "green"
}
}
然而,为产生更多控制,属性动画(property animation)使用在属性变化值之间进行插值实现了平滑移动.属性动画提供了定时控制和由easing curves指定的不同插值曲线.
Rectangle