Spec-Zone.ru › Qt 6.0

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

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

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

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 не оказывает влияния на анимации в переходе (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, они по умолчанию устанавливаются в состояние выполнения.

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

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

Spec-Zone.ru

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