Animator QML 类型

是所有 QML 动画器的基础。 更多...

导入语句import QtQuick
继承自

Animation

继承自

OpacityAnimator, RotationAnimator, ScaleAnimator, UniformAnimator, XAnimator, 以及 YAnimator

属性

详细描述

动画器类型是一种特殊的动画类型,它直接在 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
    }
}

如果 ParallelAnimationSequentialAnimation 的所有子动画都是 Animator 类型,那么 ParallelAnimationSequentialAnimation 也会被当作 Animator 处理,并在可能的情况下在场景图的渲染线程上运行。

Animator 类型可用于过渡期间的动画,但不支持 reversible 属性。

Animator 类型不能直接在 QML 文件中使用。它存在是为了提供一个公共属性和方法的集合,该集合对所有从它继承的其他动画类型都是可用的。尝试直接使用 Animator 类型将导致错误。

属性文档

duration : int

该属性持有动画持续时间的毫秒数。

默认值为 250。


easing 组

easing.amplitude : real

easing.bezierCurve : list<real>

easing.overshoot : 实数

easing.period : 实数

easing.type : 枚举

指定动画使用的缓动曲线

要指定一个缓动曲线,您至少需要指定类型。对于某些曲线,您还可以指定振幅、周期和/或超调(详情请见表格之后)。默认缓动曲线为 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.InOutElasticEasing.OutInElastic)的曲线。

easing.overshoot 仅当 easing.type 为:Easing.InBack, Easing.OutBack, Easing.InOutBackEasing.OutInBack 时适用。

easing.period 仅当 easing.type 是:Easing.InElastic, Easing.OutElastic, Easing.InOutElasticEasing.OutInElastic 时适用。

easing.bezierCurve 仅当 easing.type 是:Easing.BezierSpline 时适用。此属性是一个包含定义曲线从 0,0 到 1,1 的三个点的列表 <real> 组 - 控制点1, 控制点2, 终点:[cx1, cy1, cx2, cy2, endx, endy, ...]。最后一个点必须是 1,1。

请参阅 缓动曲线 以演示不同的缓动设置。


from : real

该属性持有动画的起始值。

如果动画器在 TransitionBehavior 中定义,此值默认为 Transition 的起始状态中定义的值,或在 Behavior 被触发时属性的当前值。

另请参阅Qt Quick 中的动画和转换


target : QtQuick::Item

该属性持有动画器的目标项目。

注意:动画器目标必须是基于项的类型。


to : real

该属性持有动画的结束值。

如果动画器在过渡行为内部定义,则此值默认为过渡的终止状态中定义的值,或者触发行为属性变化的值。


© 2024 Qt公司有限。本文件中包含的文档贡献版权属于各自的所有者。本文件提供的文档根据由自由软件基金会发布的GNU自由文档许可证第1.3版的条款进行许可。Qt及其相关商标是芬兰和/或其他国家的Qt公司注册商标。所有其他商标均为其各自所有者的财产。