Spec-Zone.ru › Qt 5.14

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

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

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

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 будет ложным после вызова 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.14/qml-qtquick-animation.html

Spec-Zone.ru

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