Spec-Zone.ru › Qt 5.13

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

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

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

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

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

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

Spec-Zone.ru

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