Spec-Zone.ru › Qt 5.15

Тип анимации QML

Является основой всех анимаций QML. Подробнее...

Заявление об импорте: import QtQuick 2.15
Наследуется от:

AnchorAnimation, Animator, ParallelAnimation, ParentAnimation, PathAnimation, PauseAnimation, PropertyAction, PropertyAnimation, ScriptAction и SequentialAnimation

  • Список всех членов, включая унаследованные

Свойства

  • alwaysRunToEnd : bool
  • loops : int
  • paused : bool
  • running : bool

Сигналы

  • finished()
  • started()
  • stopped()

Методы

  • complete()
  • pause()
  • restart()
  • resume()
  • start()
  • stop()

Подробное описание

Тип 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, они по умолчанию устанавливаются в состояние выполнения.

Документация по сигналам

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-5.15/qml-qtquick-animation.html

Spec-Zone.ru

Настройки Оффлайн Что нового Помощь О нас
Spec-Zone .ru
спецификации, руководства, описания, API