0%

Animation属性说明

相关控件:SequentialAnimation ParallelAnimation

Animation类型不能直接在QML文件中使用。它存在提供一套公共的属性和方法,可用于所有其他继承它的动画类型。尝试直接使用动画类型将导致错误。

本文: https://www.lovejia.win/blog/article/Animation.html
参考原文:http://doc.qt.io/qt-5/qml-qtquick-animation.html
参考译文:http://blog.csdn.net/vampire_armand/article/details/38895965

属性说明

alwaysRunToEnd : bool

此属性保存动画是否应在停止时运行到完成。
如果这是true,不管running被设置成false还是调用了stop()方法,动画都将继续播放到结束。该complete()方法不受此值的影响。
当设置loops属性时,此行为是最有用的,因为动画将正常播放,但不重新启动。
默认情况下,属性为false。
注意: alwaysRunToEnd对转换中的动画没有影响。

loops : int

此属性保存动画播放的次数。
默认情况下,loops为1:动画将播放一次,然后停止。
如果设置为Animation.Infinite,则动画将无限循环下去。直到显式的设置running为假或调用stop()方法,动画才会停止。

paused : bool

此属性用于保存动画是否当前已暂停。
该paused属性可以设置为以声明方式控制是否暂停动画。
动画也可以使用pause()和resume()方法从JavaScript中暂停和重新开始。
默认为false。

running : bool

此属性保存动画是否当前正在运行。
该running属性可以设置为以声明方式控制动画是否正在运行。

信号说明

started()

此信号在动画开始时发出。
它只在独立动画的顶层被触发。Behavior、Transition或动画组中的一个动画,都不会触发这个信号。
相应的处理程序是onStarted。

stopped()

该信号在动画结束时发出。
动画可能已手动停止,或可能已运行完成,都发射这个信号。
但它只在独立动画的顶层触发。Behavior、Transition或动画组的一个动画,都不触发它。如果alwaysRunToEnd是真,这个信号将在当前的动画播放完毕时出发。
相应的处理程序是onStopped。

方法说明

complete()

停止动画,跳转到最终的属性值
如果动画未运行,调用此方法没有效果。running调用后,该属性将为false。
不像stop(),complete()立即将动画快进到结束。

pause()

动画暂停。如果动画是暂停或没有播放,调用这个方法没有任何影响。paused属性会被这个方法设置为true。

restart()

重新启动动画。
这是一个方便的方法,相当于调用stop()然后start()。

resume()

继续暂停的动画。如果动画不是暂停或没有播放,调用这个方法没有影响。paused被这个方法设置成false。

start()

开始动画。如果动画已经播放,调用这个方法没有影响。running将被这个方法设置成true。

stop()

停止动画。如果动画没有播放,调用这个方法没有影响。running和paused会被这个方法设置成false。
通常stop()立即停止动画,动画对属性值没有进一步的影响。

功能简述

Animation类型不能直接在QML文件中使用。它存在提供一套公共的属性和方法,可用于所有其他继承它的动画类型。尝试直接使用动画类型将导致错误。

以下示例矩形无限旋转:

1
2
3
4
5
6
7
8
Rectangle {
width: 100; height: 100; color: "green"
RotationAnimation on rotation {
loops: Animation.Infinite
from: 0
to: 360
}
}

以下示例将动画每当一个矩形鼠标区域被按下:

1
2
3
4
5
6
7
8
9
10
11
12
Rectangle {
id:rect
width: 100; height: 100
color:"blue"
NumberAnimation on x {
running: myMouse.pressed
from: 0; to: 100
}
MouseArea {
anchors.fill: rect
}
}

以下示例Text项将指示动画是否正在运行:

1
2
NumberAnimation { id: myAnimation }
Text { text: myAnimation.running ? "Animation is running" : "Animation is not running" }
------本文结束    感谢阅读------
你打赏你的,我分享我的!