Тип QML Animation
Является основой всех анимаций QML. Подробнее...
| Заявление об импорте: | import QtQuick 2.12 |
| Наследуется от: | 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, они по умолчанию устанавливаются в запущенное состояние.
Документация по сигналам
finished()
Этот сигнал испускается, когда анимация завершается естественным образом.
Он не испускается, когда running установлено в false, а также для анимаций, для которых свойство loops установлено в Animation.Infinite.
Кроме того, он испускается только для автономных анимаций верхнего уровня. Он не будет испускаться для анимаций в поведении (Behavior) или переходе (Transition), или для анимаций, которые являются частью группы анимаций.
Если alwaysRunToEnd имеет значение true, этот сигнал не будет испущен, пока анимация не завершит текущую итерацию.
Соответствующий обработчик — onFinished.
Этот сигнал был добавлен в Qt 5.12.
См. также stopped(), started() и running.
started()
Этот сигнал испускается, когда анимация начинается.
Он запускается только для автономных анимаций верхнего уровня. Он не будет запускаться для анимаций в поведении (Behavior) или переходе (Transition), или для анимаций, которые являются частью группы анимаций.
Соответствующий обработчик — onStarted.
stopped()
Этот сигнал испускается, когда анимация заканчивается.
Анимация может быть остановлена вручную или может завершиться естественным образом.
Он запускается только для автономных анимаций верхнего уровня. Он не будет запускаться для анимаций в поведении (Behavior) или переходе (Transition), или для анимаций, которые являются частью группы анимаций.
Если alwaysRunToEnd имеет значение true, этот сигнал не будет испущен, пока анимация не завершит текущую итерацию.
Соответствующий обработчик — onStopped.
Документация по методам
complete()
Останавливает анимацию, переходя к конечным значениям свойств
Если анимация не запущена, вызов этого метода не оказывает никакого влияния. Свойство running будет ложным после вызова complete().
В отличие от stop(), complete() немедленно быстро прокручивает анимацию до конца. В следующем примере,
Rectangle {
NumberAnimation on x { from: 0; to: 100; duration: 500 }
} вызов stop() в момент 250 мс приведет к тому, что свойство x будет иметь значение 50, а вызов complete() установит свойство x в 100, точно так же, как если бы анимация воспроизвелась полностью.
pause()
Приостанавливает анимацию
Если анимация уже приостановлена или не running, вызов этого метода не оказывает никакого влияния. Свойство paused будет истинным после вызова pause().
restart()
Перезапускает анимацию
Это вспомогательный метод, эквивалентный вызову stop() и затем start().
resume()
Возобновляет приостановленную анимацию
Если анимация не приостановлена или не running, вызов этого метода не оказывает никакого влияния. Свойство paused будет ложным после вызова resume().
start()
Запускает анимацию
Если анимация уже запущена, вызов этого метода не оказывает никакого влияния. Свойство running будет истинным после вызова start().
stop()
Останавливает анимацию
Если анимация не запущена, вызов этого метода не оказывает никакого влияния. Оба свойства running и paused будут ложными после вызова stop().
Обычно stop() останавливает анимацию немедленно, и анимация больше не оказывает влияния на значения свойств. В этом примере анимации
Rectangle {
NumberAnimation on x { from: 0; to: 100; duration: 500 }
} была остановлена в момент 250 мс, свойство x будет иметь значение 50.
Однако, если свойство alwaysRunToEnd установлено, анимация продолжит выполняться до завершения и затем остановится. Свойство running все равно станет ложным немедленно.
© The Qt Company Ltd
Licensed under the GNU Free Documentation License, Version 1.3.
https://doc.qt.io/qt-5.12/qml-qtquick-animation.html