Spec-Zone.ru › Qt 5.11

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

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

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

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

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

Свойства

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

Сигналы

  • started()
  • stopped()

Методы

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

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

Тип Animation не может использоваться напрямую в файле QML. Он существует для предоставления набора общих свойств и методов, доступных во всех других типах анимации, которые наследуются от него. Попытка использования типа Animation напрямую приведет к ошибке.

Документация по свойствам

alwaysRunToEnd : bool

Это свойство определяет, должна ли анимация завершиться до конца, когда она останавливается.

Если это значение истинно, анимация завершит текущую итерацию при остановке — либо путем установки свойства 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 все равно станет ложным немедленно.

© The Qt Company Ltd
Licensed under the GNU Free Documentation License, Version 1.3.
https://doc.qt.io/archives/qt-5.11/qml-qtquick-animation.html

Spec-Zone.ru

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