Animator QML 类型
是所有 QML 动画器的基础。 更多...
导入语句 | import QtQuick |
继承自 | |
继承自 | OpacityAnimator, RotationAnimator, ScaleAnimator, UniformAnimator, XAnimator, 以及 YAnimator |
属性
- duration : int
- easing
- easing.amplitude : real
- easing.bezierCurve : list<real>
- easing.overshoot : real
- easing.period : real
- easing.type : 枚举
- from : real
- target : QtQuick::Item
- to : real
详细描述
动画器类型是一种特殊的动画类型,它直接在 Qt Quick 的场景图中操作,而不是像常规的 Animation 类型那样操作 QML 对象及其属性。这有一个好处,即基于 Animator 的动画可以在 UI 线程阻塞时在场景图的渲染线程上动画。
动画完成后将更新 QML 属性的值。在动画运行时不会更新该属性。
Animator 类型就像其他任何动画类型一样可以用来使用。
Rectangle { id: mixBox width: 50 height: 50 ParallelAnimation { ColorAnimation { target: mixBox property: "color" from: "forestgreen" to: "lightsteelblue"; duration: 1000 } ScaleAnimator { target: mixBox from: 2 to: 1 duration: 1000 } running: true } }
如果 ParallelAnimation 和 SequentialAnimation 的所有子动画都是 Animator 类型,那么 ParallelAnimation 和 SequentialAnimation 也会被当作 Animator 处理,并在可能的情况下在场景图的渲染线程上运行。
Animator 类型可用于过渡期间的动画,但不支持 reversible 属性。
Animator 类型不能直接在 QML 文件中使用。它存在是为了提供一个公共属性和方法的集合,该集合对所有从它继承的其他动画类型都是可用的。尝试直接使用 Animator 类型将导致错误。
属性文档
duration : int |
该属性持有动画持续时间的毫秒数。
默认值为 250。
指定动画使用的缓动曲线
要指定一个缓动曲线,您至少需要指定类型。对于某些曲线,您还可以指定振幅、周期和/或超调(详情请见表格之后)。默认缓动曲线为 Easing.Linear
。
PropertyAnimation { properties: "y"; easing.type: Easing.InOutElastic; easing.amplitude: 2.0; easing.period: 1.5 }
支持的类型有
Easing.Linear | 为线性(t)函数的缓动曲线:速度恒定。 | |
Easing.InQuad | 为二次(t^2)函数的缓动曲线:从零速度加速。 | |
Easing.OutQuad | 为二次(t^2)函数的缓动曲线:减速到零速度。 | |
Easing.InOutQuad | 为二次(t^2)函数的缓动曲线:加速到一半,然后减速。 | |
Easing.OutInQuad | 为二次(t^2)函数的缓动曲线:减速到一半,然后加速。 | |
Easing.InCubic | 为三次(t^3)函数的缓动曲线:从零速度加速。 | |
Easing.OutCubic | 为三次(t^3)函数的缓动曲线:减速到零速度。 | |
Easing.InOutCubic | 为三次(t^3)函数的缓动曲线:加速到一半,然后减速。 | |
Easing.OutInCubic | 为三次(t^3)函数的缓动曲线:减速到一半,然后加速。 | |
Easing.InQuart | 为四次(t^4)函数的缓动曲线:从零速度加速。 | |
Easing.OutQuart | 为四次(t^4)函数的缓动曲线:减速到零速度。 | |
Easing.InOutQuart | 为四次(t^4)函数的缓动曲线:加速到一半,然后减速。 | |
Easing.OutInQuart | 为四次(t^4)函数的缓动曲线:减速到一半,然后加速。 | |
Easing.InQuint | 为五次(t^5)函数的缓动曲线:从零速度加速。 | |
Easing.OutQuint | 为五次(t^5)函数的缓动曲线:减速到零速度。 | |
Easing.InOutQuint | 为五次(t^5)函数的缓动曲线:加速到一半,然后减速。 | |
Easing.OutInQuint | 为五次(t^5)函数的缓动曲线:减速到一半,然后加速。 | |
Easing.InSine | 为正弦(sin(t))函数的缓动曲线:从零速度加速。 | |
Easing.OutSine | 为正弦(sin(t))函数的缓动曲线:减速到零速度。 | |
Easing.InOutSine | 为正弦(sin(t))函数的缓动曲线:加速到一半,然后减速。 | |
Easing.OutInSine | 为正弦(sin(t))函数的缓动曲线:减速到一半,然后加速。 | |
Easing.InExpo | 为指数(2^t)函数的缓动曲线:从零速度加速。 | |
Easing.OutExpo | 为指数(2^t)函数的缓动曲线:减速到零速度。 | |
Easing.InOutExpo | 为指数(2^t)函数的缓动曲线:加速到一半,然后减速。 | |
Easing.OutInExpo | 为指数(2^t)函数的缓动曲线:减速到一半,然后加速。 | |
Easing.InCirc | 为圆形(sqrt(1-t^2))函数的缓动曲线:从零速度加速。 | |
Easing.OutCirc | 为圆形(sqrt(1-t^2))函数的缓动曲线:减速到零速度。 | |
Easing.InOutCirc | 为圆形(sqrt(1-t^2))函数的缓动曲线:加速到一半,然后减速。 | |
Easing.OutInCirc | 为圆形(sqrt(1-t^2))函数的缓动曲线:减速到一半,然后加速。 | |
Easing.InElastic | 为弹性(指数衰减正弦波)函数的缓动曲线:从零速度加速。 可以通过 amplitude 参数设置峰值振幅,通过 period 参数设置衰减周期。 | |
Easing.OutElastic | 弹性函数(指数衰减正弦波)的缓动曲线:减速至零速度。 可以通过 amplitude 参数设置峰值振幅,通过 period 参数设置衰减周期。 | |
Easing.InOutElastic | 弹性函数(指数衰减正弦波)的缓动曲线:加速至中途,然后减速。 | |
Easing.OutInElastic | 弹性函数(指数衰减正弦波)的缓动曲线:减速至中途,然后加速。 | |
Easing.InBack | 反向(超过三次方的函数:(s+1)*t^3 - s*t^2)的缓动进入:从零速度加速。 | |
Easing.OutBack | 反向(超过三次方的函数:(s+1)*t^3 - s*t^2)的缓动退出:减速至零速度。 | |
Easing.InOutBack | 反向(超过三次方的函数:(s+1)*t^3 - s*t^2)的缓动进出:加速至中途,然后减速。 | |
Easing.OutInBack | 反向(超过三次方缓动:(s+1)*t^3 - s*t^2)的缓动退出/进入:减速至中途,然后加速。 | |
Easing.InBounce | 反弹(指数衰减抛物线反弹)函数的缓动曲线:从零速度加速。 | |
Easing.OutBounce | 反弹(指数衰减抛物线反弹)函数的缓动曲线:减速至零速度。 | |
Easing.InOutBounce | 反弹(指数衰减抛物线反弹)函数的缓动进出:加速至中途,然后减速。 | |
Easing.OutInBounce | 反弹(指数衰减抛物线反弹)函数的缓动退出/进入:减速至中途,然后加速。 | |
Easing.BezierSpline | 由easing.bezierCurve属性定义的自定义缓动曲线。 |
easing.amplitude
仅适用于反弹和弹性曲线(类型为 Easing.InBounce
, Easing.OutBounce
, Easing.InOutBounce
, Easing.OutInBounce
, Easing.InElastic
, Easing.OutElastic
, Easing.InOutElastic
或 Easing.OutInElastic
)的曲线。
easing.overshoot
仅当 easing.type
为:Easing.InBack
, Easing.OutBack
, Easing.InOutBack
或 Easing.OutInBack
时适用。
easing.period
仅当 easing.type
是:Easing.InElastic
, Easing.OutElastic
, Easing.InOutElastic
或 Easing.OutInElastic
时适用。
easing.bezierCurve
仅当 easing.type
是:Easing.BezierSpline
时适用。此属性是一个包含定义曲线从 0,0 到 1,1 的三个点的列表 <real> 组 - 控制点1, 控制点2, 终点:[cx1, cy1, cx2, cy2, endx, endy, ...]。最后一个点必须是 1,1。
请参阅 缓动曲线 以演示不同的缓动设置。
from : real |
该属性持有动画的起始值。
如果动画器在 Transition 或 Behavior 中定义,此值默认为 Transition 的起始状态中定义的值,或在 Behavior 被触发时属性的当前值。
另请参阅Qt Quick 中的动画和转换。
target : QtQuick::Item |
该属性持有动画器的目标项目。
注意:动画器目标必须是基于项的类型。
© 2024 Qt公司有限。本文件中包含的文档贡献版权属于各自的所有者。本文件提供的文档根据由自由软件基金会发布的GNU自由文档许可证第1.3版的条款进行许可。Qt及其相关商标是芬兰和/或其他国家的Qt公司注册商标。所有其他商标均为其各自所有者的财产。