Тип QML SmoothedAnimation
Разрешает свойству плавно отслеживать значение Подробнее...
| Заявление об импорте: | import QtQuick 2.5 |
| Наследует: |
Свойства
- duration : int
- maximumEasingTime : int
- reversingMode : перечисление
- velocity : real
Подробное описание
Тип SmoothedAnimation анимирует значение свойства до установленного целевого значения, используя кривую плавного ускорения/замедления квадратичной функции. Когда целевое значение изменяется, кривые плавного ускорения/замедления, используемые для анимации между старым и новым целевыми значениями, плавно соединяются, чтобы создать плавное движение к новому целевому значению, которое сохраняет текущую скорость.
Следующий пример показывает один Rectangle, который отслеживает положение другого, используя SmoothedAnimation. Значения x и y зеленого прямоугольника связаны со значениями красного прямоугольника. Всякий раз, когда эти значения изменяются, зеленый прямоугольник плавно анимируется в новое положение:
import QtQuick 2.0
Rectangle {
width: 800; height: 600
color: "blue"
Rectangle {
width: 60; height: 60
x: rect1.x - 5; y: rect1.y - 5
color: "green"
Behavior on x { SmoothedAnimation { velocity: 200 } }
Behavior on y { SmoothedAnimation { velocity: 200 } }
}
Rectangle {
id: rect1
width: 50; height: 50
color: "red"
}
focus: true
Keys.onRightPressed: rect1.x = rect1.x + 100
Keys.onLeftPressed: rect1.x = rect1.x - 100
Keys.onUpPressed: rect1.y = rect1.y - 100
Keys.onDownPressed: rect1.y = rect1.y + 100
} Тип SmoothedAnimation можно настроить, задав скорость velocity анимации или длительность duration анимации. Если заданы значения скорости и длительности, для каждого изменения целевого значения будет выбрано значение, которое приведет к более быстрой анимации.
Например, анимация от 0 до 800 займет 4 секунды, если скорость 200, 8 секунд с длительностью 8000 и 4 секунды, если заданы и скорость 200, и длительность 8000. Анимация от 0 до 20000 займет 10 секунд со скоростью 200, 8 секунд с длительностью 8000 и 8 секунд, если заданы и скорость 200, и длительность 8000.
По умолчанию скорость SmoothedAnimation составляет 200 единиц/секунду. Обратите внимание, что если диапазон анимируемого значения небольшой, то скорость необходимо скорректировать соответствующим образом. Например, непрозрачность элемента находится в диапазоне от 0 до 1,0. Для плавной анимации в этом диапазоне скорость необходимо установить на значение, например, 0,5 единицы/секунду. Анимация от 0 до 1,0 со скоростью 0,5 займет 2000 мс.
Как и любой другой тип анимации, SmoothedAnimation можно применять различными способами, включая переходы, поведения и источники значений свойств. Документация по Анимации и переходы в Qt Quick демонстрирует различные методы создания анимаций.
См. также SpringAnimation, NumberAnimation, Анимации и переходы в Qt Quick и Примеры Qt Quick — Анимация.
Документация по свойствам
duration : int
Это свойство содержит длительность анимации в мс, используемую при отслеживании источника.
Установка значения -1 (по умолчанию) отключает значение длительности.
Если значения скорости и длительности оба включены, то анимация будет использовать то значение, которое даст более короткую длительность.
maximumEasingTime : int
Это свойство задает максимальное время в мс, которое может занимать любое «сглаживание» при отслеживании. Установка этого свойства приводит к «выравниванию» скорости после определенного времени. Установка отрицательного значения возвращает к обычному режиму плавного ускорения/замедления на всю длительность анимации.
Значение по умолчанию равно -1.
reversingMode : перечисление
Устанавливает поведение SmoothedAnimation, если направление анимации меняется на обратное.
Возможные значения:
- SmoothedAnimation.Eased (по умолчанию) — анимация будет плавно замедляться, а затем изменить направление
- SmoothedAnimation.Immediate — анимация немедленно начнёт ускоряться в обратном направлении, начав со скорости 0
- SmoothedAnimation.Sync — свойство немедленно устанавливается в целевое значение
velocity : real
Это свойство содержит среднюю скорость, разрешенную при отслеживании значения «до».
По умолчанию скорость SmoothedAnimation составляет 200 единиц/секунду.
Установка значения -1 отключает значение скорости.
Если значения скорости и длительности оба включены, то анимация будет использовать то значение, которое даст более короткую длительность.
© The Qt Company Ltd
Licensed under the GNU Free Documentation License, Version 1.3.
https://doc.qt.io/archives/qt-5.6/qml-qtquick-smoothedanimation.html