Тип анимации QML
Является основой всех анимаций QML. Подробнее...
| Заявление об импорте: | import QtQuick |
| Наследуется от: | AnchorAnimation, Animator, ParallelAnimation, ParentAnimation, PathAnimation, PauseAnimation, PropertyAction, PropertyAnimation, ScriptAction и SequentialAnimation |
Свойства
- alwaysRunToEnd : bool
- loops : int
- paused : bool
- running : bool
Сигналы
Методы
Подробное описание
Тип Animation нельзя использовать напрямую в файле QML. Он существует для предоставления набора общих свойств и методов, доступных во всех других типах анимаций, которые наследуют от него. Попытка использовать тип Animation напрямую приведет к ошибке.
Документация по свойствам
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
}
} paused : bool
Это свойство указывает, приостановлена ли анимация в данный момент.
Свойство paused может быть установлено для декларативного управления приостановкой анимации.
Анимации также можно приостанавливать и возобновлять императивно из JavaScript с помощью методов pause() и resume().
По умолчанию анимации не приостановлены.
running : bool
Это свойство указывает, выполняется ли анимация в данный момент.
Свойство running может быть установлено для декларативного управления запуском или остановкой анимации. Следующий пример анимирует прямоугольник всякий раз, когда нажимается MouseArea.
Rectangle {
width: 100; height: 100
NumberAnimation on x {
running: myMouse.pressed
from: 0; to: 100
}
MouseArea { id: myMouse }
} Аналогично, свойство running можно прочитать, чтобы определить, выполняется ли анимация. В следующем примере элемент Text будет указывать, выполняется ли анимация или нет.
NumberAnimation { id: myAnimation }
Text { text: myAnimation.running ? "Animation is running" : "Animation is not running" } Анимации также можно запускать и останавливать императивно из JavaScript с помощью методов start() и stop().
По умолчанию анимации не выполняются. Однако, когда анимации назначаются свойствам в качестве источников значений свойств с использованием синтаксиса on, они по умолчанию устанавливаются в состояние выполнения.
Документация по сигналам
[since 5.12] finished()
Этот сигнал излучается, когда анимация завершается естественным образом.
Он не излучается, когда running установлено в false, ни для анимаций, у которых свойство loops установлено в Animation.Infinite.
Кроме того, он излучается только для анимаций верхнего уровня, работающих автономно. Он не будет излучаться для анимаций в поведении или переходе, или анимаций, которые являются частью группы анимаций.
Если alwaysRunToEnd равно true, этот сигнал не будет излучен, пока анимация не завершит текущую итерацию.
Примечание: Соответствующий обработчик — onFinished.
Этот сигнал был представлен в Qt 5.12.
См. также stopped(), started() и running.
started()
Этот сигнал излучается при начале анимации.
Он срабатывает только для анимаций верхнего уровня, работающих автономно. Он не будет срабатывать для анимаций в поведении или переходе, или для анимаций, которые являются частью группы анимаций.
Примечание: Соответствующий обработчик — onStarted.
stopped()
Этот сигнал излучается при окончании анимации.
Анимация может быть остановлена вручную или может завершиться естественным образом.
Он срабатывает только для анимаций верхнего уровня, работающих автономно. Он не будет срабатывать для анимаций в поведении или переходе, или для анимаций, которые являются частью группы анимаций.
Если alwaysRunToEnd равно true, этот сигнал не будет излучен, пока анимация не завершит текущую итерацию.
Примечание: Соответствующий обработчик — onStopped.
Документация по методам
complete()
Останавливает анимацию, перепрыгивая к конечным значениям свойств
Если анимация не выполняется, вызов этого метода не оказывает никакого влияния. Свойство running будет false после вызова complete().
В отличие от stop(), complete() немедленно переводит анимацию к ее концу. В следующем примере
Rectangle {
NumberAnimation on x { from: 0; to: 100; duration: 500 }
} вызов stop() в момент времени 250 мс приведет к тому, что свойство x будет иметь значение 50, в то время как вызов complete() установит свойство x в 100, точно так же, как если бы анимация отыгралась полностью.
pause()
Приостанавливает анимацию
Если анимация уже приостановлена или не running, вызов этого метода не оказывает никакого влияния. Свойство paused будет равно true после вызова pause().
restart()
Перезапускает анимацию
Это удобный метод, эквивалентный вызову stop() и затем start().
resume()
Возобновляет приостановленную анимацию
Если анимация не приостановлена или не running, вызов этого метода не оказывает никакого влияния. Свойство paused будет равно false после вызова resume().
start()
Запускает анимацию
Если анимация уже запущена, вызов этого метода не оказывает никакого влияния. Свойство running будет равно true после вызова start().
stop()
Останавливает анимацию
Если анимация не выполняется, вызов этого метода не оказывает никакого влияния. Свойства running и paused будут равны false после вызова stop().
Обычно stop() останавливает анимацию немедленно, и анимация больше не влияет на значения свойств. В данном примере анимация
Rectangle {
NumberAnimation on x { from: 0; to: 100; duration: 500 }
} была остановлена в момент времени 250 мс, свойство x будет иметь значение 50.
Однако, если свойство alwaysRunToEnd установлено, анимация будет продолжать выполняться до завершения и затем остановится. Свойство running все равно станет false немедленно.
© The Qt Company Ltd
Licensed under the GNU Free Documentation License, Version 1.3.
https://doc.qt.io/qt-6.2/qml-qtquick-animation.html