Spec-Zone.ru › Qt 5.6

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

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

Выражение импорта: import QtQuick 2.5
Наследуется от:

AnchorAnimation, 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

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

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

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

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/archives/qt-5.6/qml-qtquick-animation.html

Spec-Zone.ru

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