C

动画 QML 类型

是所有 QML 动画的基类。 更多信息...

导入语句import QtQuick
Qt Quick Ultralite 1.0
继承自

ParallelAnimationPauseAnimationPropertyAnimationScriptActionSequentialAnimation

属性

信号

方法

详细说明

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 语法,它们默认设置为正在运行。


信号文档

[since Qt Quick Ultralite 1.1] finished()

当动画自然完成时发出此信号。

running 设置为 false 时不会发出,也不会为将 loops 属性设置为 Animation.Infinite 的动画发出。

此外,它仅针对顶级、独立动画发出。对于在 Behavior 或 Transition 中的动画,或者动画组中的动画,它不会发出。

如果 alwaysRunToEnd 为 true,则此信号将在动画完成其当前迭代后才发出。

注意:相应的事件处理器是 onFinished.

此信号在 Qt Quick Ultralite 1.1 中引入。

另请参阅:stopped(),started() 和 running.


[since Qt Quick Ultralite 1.1] started()

当动画开始时发出此信号。

它仅针对顶级、独立动画触发。对于在 Behavior 或 Transition 中的动画,或者作为动画组一部分的动画,它不会触发。

注意:相应的事件处理器是 onStarted.

此信号在 Qt Quick Ultralite 1.1 中引入。


[since Qt Quick Ultralite 1.1] stopped()

当动画结束时发出此信号。

动画可能被手动停止,也可能已经运行到完成。

它仅针对顶级、独立动画触发。对于在 Behavior 或 Transition 中的动画,或者作为动画组一部分的动画,它不会触发。

如果 alwaysRunToEnd 为 true,则此信号将在动画完成其当前迭代后才发出。

注意:相应的事件处理器是 onStopped.

此信号在 Qt Quick Ultralite 1.1 中引入。


方法文档

start()

启动动画

如果动画已经在运行,调用此方法没有效果。调用 start() 后,running 属性将为 true。


stop()

停止动画

如果动画未运行,调用此方法没有效果。调用 stop() 后,runningpaused 属性都将为 false。

通常,stop() 会立即停止动画,并且动画对属性值不再有影响。在以下动画示例中

Rectangle {
    NumberAnimation on x { from: 0; to: 100; duration: 500 }
}

在 250ms 时停止,x 属性的值为 50。

但是,如果设置了 alwaysRunToEnd 属性,动画将继续运行直到完成然后停止。此时,running 属性将立即变成 false。


在某些 Qt 许可下可用。
了解更多。