QML类型说明-Animator

来源:互联网 发布:鄂州软件开发公司 编辑:程序博客网 时间:2024/04/29 20:05

Animator

ImportStatement:   import QtQuick2.2

Since:  Qt 5.2

 

Properties

duration : int

easing

easing.type : enumeration

easing.amplitude : real

easing.overshoot : real

easing.period : real

easing.bezierCurve : list

from : real

target : QtQuick::Item

to : real

 

DetailedDescription

Animator是直接在QtQuick的场景中操作的动画类型。它不像一般的动画和QML组件那样,当UI线程阻塞的时候,动画渲染线程也阻塞。这个特点可以在文字跑马灯上看得很清楚。在芯承荣治的6120板卡上,使用QPainter绘制的跑马灯,当字体大于200时,会变得很卡,而使用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。那么它们会在可能的情况下,被当成一个Animator在场景中运行。

Animator可用于过渡,但不可逆。既不能倒着播。Animator不能直接用于QML文件。它为所有继承它的组件提供共同的属性和方法。直接在QML中使用Animator将导致一个错误。

 

PropertyDocumentation

duration : int

动画持续的时间,毫秒级。默认值250

 

easing group

easing.type : enumeration

easing.amplitude : real

easing.overshoot : real

easing.period : real

easing.bezierCurve : list

用于指定动画的缓和曲线。动画从开始到结束,比如开始红色,结束绿色;又比如开始在A点,结束到B点。这个动画的过程,我们用一条曲线来描述。如红色变绿色,开始我们变得快些,后面我们变得慢些,这个变化的速度曲线,就是缓和曲线,以此类推。

如指定缓和曲线,easing.type是必须需要指定的。此外,我们还可以指定动画的振幅、周期和过冲。默认的曲线是Easing.Linear。下表详细的介绍了缓和曲线。

 

Easing.Linear速度不变,加速度为0Easing.InQuad从0加速,缓和曲线为t的平方(t^2)Easing.OutQuad减速到0,缓和曲线为t的平方(t^2)Easing.InOutQuad先加速,后减速,缓和曲线为t的平方(t^2)Easing.OutInQuad先减速,后加速,缓和曲线为t的平方(t^2)Easing.InCubic从0加速,缓和曲线为t的3次方(t^3)Easing.OutCubic减速到0,缓和曲线为t的3次方(t^3)Easing.InOutCubic先加速,后减速,缓和曲线为t的3次方(t^3)Easing.OutInCubic先减速,后加速,缓和曲线为t的3次方(t^3)Easing.InQuart从0加速,缓和曲线为t的4次方(t^4)Easing.OutQuart减速到0,缓和曲线为t的4次方(t^4)Easing.InOutQuart先加速后减速,缓和曲线为t的4次方(t^4)Easing.OutInQuart先减速后加速,缓和曲线为t的4次方(t^4)Easing.InQuint从0加速,缓和曲线为t的5次方(t^5)Easing.OutQuint减速到0,缓和曲线为t的5次方(t^5)Easing.InOutQuint先加速,后减速,缓和曲线为t的5次方(t^5)Easing.OutInQuint先减速,后加速,缓和曲线为t的5次方(t^5)Easing.InSine

从0加速,缓和曲线为t的正弦函数(sin(t))

Easing.OutSine减速到0,缓和曲线为t的正弦函数(sin(t))Easing.InOutSine先加速,后减速,缓和曲线为t的正弦函数(sin(t))Easing.OutInSine先减速,后加速,缓和曲线为t的正弦函数(sin(t))Easing.InExpo从0加速,缓和曲线为2的t次方(2^t)Easing.OutExpo减速到0,缓和曲线为2的t次方(2^t)Easing.InOutExpo先加速后减速,缓和曲线为2的t次方(2^t)Easing.OutInExpo先减速后加速,缓和曲线为2的t次方(2^t)Easing.InCirc从0加速,缓和曲线为(1-t^2)的平方根(sqrt(1-t^2))Easing.OutCirc减速到0,缓和曲线为(1-t^2)的平方根(sqrt(1-t^2))Easing.InOutCirc先加速,后减速,缓和曲线为(1-t^2)的平方根(sqrt(1-t^2))Easing.OutInCirc先减速,后加速,缓和曲线为(1-t^2)的平方根(sqrt(1-t^2))Easing.InElastic

峰值衰减正弦波,峰值从0开始,可设置振幅和周期参数

Easing.OutElastic峰值衰减正弦波,峰值衰减到0,可设置振幅和周期参数Easing.InOutElastic

峰值衰减正弦波,峰值从0开始,半程时减少到0

 

Easing.OutInElastic

峰值衰减正弦波,峰值减少到半程,然后增加

Easing.InBack

从0开始过冲,缓和曲线(s+1)*t^3 - s*t^2)

Easing.OutBack

减少到0的过冲,缓和曲线(s+1)*t^3 - s*t^2)

Easing.InOutBack

从0开始到半程增加过冲,然后减少。缓和曲线 (s+1)*t^3 - s*t^2)

Easing.OutInBack

过冲减少到半程,然后增加,缓和曲线(s+1)*t^3 - s*t^2)

Easing.InBounce

指数衰减型反弹曲线,从0增加

Easing.OutBounce

指数衰减型反弹曲线,减少到0

Easing.InOutBounce

指数衰减型反弹曲线,先加后减

.Easing.OutInBounce先减后加

 

easing.amplitude这个参数只适用于Easing.InBounce、Easing.OutBounce、Easing.InOutBounce,、Easing.OutInBounce、Easing.InElastic、Easing.OutElastic、Easing.InOutElastic、Easing.OutInElastic这8种曲线

 

easing.overshoot这个参数只适用于Easing.InBack、Easing.OutBack、Easing.InOutBack、Easing.OutInBack这四种曲线

 

easing.period这个参数只适用于Easing.InElastic、Easing.OutElastic、Easing.InOutElastic、Easing.OutInElastic这四种曲线

 

easing.bezierCurve这个参数只适用于Easing.Bezier曲线。这个曲线没有放到上面的列表中。它是自定义的曲线。使用本参数控制。这个参数是3个点构成的组的列表,3个点分别为控制点1,控制点2和终点。[cx1,cy1, cx2, cy2, endx, endy,...],参数里面可以有很多个组,但这个参数的终点,必须是(1,1)

 

可同时参阅缓冲的实例

 

from : real

动画的起始值。如果一个动画被定义为过渡或行为,这个值的默认值是过渡的开始状态或行为触发的属性值。

同时参阅Animation和Transitions的类型文档。

 

target :QtQuick::Item

动画的目标组件。注意动画的目标必须是Item组件。

 

to : real

动画的终点值。如果一个动画被定义为过渡或行为。这个值的默认值是过渡的终点状态或触发行为改变后的属性值。

0 0
原创粉丝点击