Тип QML Animation
Основа всех анимаций QML Подробнее...
| Заявление об импорте: | import QtQuick 2.7 |
| Наследуется от: | 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, они устанавливаются в состояние выполнения по умолчанию.
Документация по сигналам
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-5.9/qml-qtquick-animation.html