C
动画 QML 类型
是所有 QML 动画的基类。 更多信息...
导入语句 | import QtQuick |
自 | Qt Quick Ultralite 1.0 |
继承自 | ParallelAnimation、PauseAnimation、PropertyAnimation、ScriptAction 和 SequentialAnimation |
属性
- alwaysRunToEnd : bool
- loops : int
- running : bool
信号
方法
详细说明
Animation 类型不能直接在 QML 文件中使用。它的存在是为了提供一组通用的属性和方法,这些属性和方法可在所有继承自它的其他动画类型中使用。直接尝试使用 Animation 类型会导致错误。
另请参阅Qt Quick Ultralite 的重要概念 - 状态、过渡和动画。
属性文档
alwaysRunToEnd : bool |
此属性表示当动画停止时,动画是否应运行到完成。
如果设置为 true,动画将在停止时完成当前迭代 - 要么通过将该 running
属性设置为 false,要么通过调用 stop()
方法。该 complete()
方法不受此值的影响。
当设置 loops
属性时,此行为最有用,因为动画将正常播放完毕,但不会重新启动。
默认情况下,alwaysRunToEnd 属性未设置。
注意:alwaysRunToEnd 对 Transition 中的动画没有影响。
loops : int |
此属性表示动画应播放的次数。
默认情况下,loops
为 1:动画将播放一次并停止。
如果设置为 Animation.Infinite 或负值,动画将无限循环重复,直到显式停止 - 要么通过将该 running
属性设置为 false,要么通过调用 stop()
方法。
在下面的示例中,矩形将无限旋转。
Rectangle { width: 100; height: 100; color: "green" RotationAnimation on rotation { loops: Animation.Infinite from: 0 to: 360 } }
running : bool |
此属性表示动画是否正在运行。
可以通过将 running
属性设置为随声明方式来控制动画是否正在运行。以下示例将每当按下 MouseArea 时,动画一个矩形。
Rectangle { width: 100; height: 100 NumberAnimation on x { running: myMouse.pressed from: 0; to: 100 } MouseArea { id: myMouse } }
同样,可以通过读取 running
属性来确定是否正在运行。以下示例文本项将指示动画是否正在运行。
NumberAnimation { id: myAnimation } Text { text: myAnimation.running ? "Animation is running" : "Animation is not running" }
也可以从 JavaScript 强制启动和停止动画,使用 start()
和 stop()
方法。
默认情况下,动画不会运行。但是,当将动画分配给属性,作为属性值源使用 on 语法,它们默认设置为正在运行。
信号文档
|
|
当动画开始时发出此信号。
它仅针对顶级、独立动画触发。对于在 Behavior 或 Transition 中的动画,或者作为动画组一部分的动画,它不会触发。
注意:相应的事件处理器是 onStarted
.
此信号在 Qt Quick Ultralite 1.1 中引入。
|
当动画结束时发出此信号。
动画可能被手动停止,也可能已经运行到完成。
它仅针对顶级、独立动画触发。对于在 Behavior 或 Transition 中的动画,或者作为动画组一部分的动画,它不会触发。
如果 alwaysRunToEnd 为 true,则此信号将在动画完成其当前迭代后才发出。
注意:相应的事件处理器是 onStopped
.
此信号在 Qt Quick Ultralite 1.1 中引入。
方法文档
start() |
启动动画
如果动画已经在运行,调用此方法没有效果。调用 start()
后,running
属性将为 true。
stop() |
停止动画
如果动画未运行,调用此方法没有效果。调用 stop()
后,running
和 paused
属性都将为 false。
通常,stop()
会立即停止动画,并且动画对属性值不再有影响。在以下动画示例中
Rectangle { NumberAnimation on x { from: 0; to: 100; duration: 500 } }
在 250ms 时停止,x
属性的值为 50。
但是,如果设置了 alwaysRunToEnd
属性,动画将继续运行直到完成然后停止。此时,running
属性将立即变成 false。
在某些 Qt 许可下可用。
了解更多。