相关控件: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 | Rectangle { |
以下示例将动画每当一个矩形鼠标区域被按下:
1 | Rectangle { |
以下示例Text项将指示动画是否正在运行:
1 | NumberAnimation { id: myAnimation } |