Тип анимации QML
Является основой всех анимаций QML. Подробнее...
| Заявление об импорте: | import QtQuick 2.1 |
| Наследуется от: | 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 не влияет на анимации в переходе.
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.1/qml-qtquick-animation.html