SmoothedAnimation QML 类型
允许一个属性平滑跟踪一个值。 更多信息...
导入语句 | import QtQuick |
继承 |
属性
- duration : int
- maximumEasingTime : int
- reversingMode : 枚举
- velocity : 实数
详细描述
SmoothedAnimation 通过使用缓动曲线将属性值平滑地动画化到设定的目标值。当目标值发生变化时,用于在旧值和新值之间动画的缓动曲线将平滑拼接在一起,以生成一个新的目标值平滑运动,同时保持当前速度。
以下示例展示了如何使用 SmoothedAnimation 跟踪另一个矩形的定位。绿色矩形的 x 和 y 值绑定到红色矩形的相应值。每当这些值发生变化时,绿色矩形将平滑地动画化到新位置
import QtQuick 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 可以通过设置动画应发生的速度或动画应持续的时间进行配置。如果都指定了速度和时间,则对于每个目标值的变化,都会选择导致最快动画的速度或时间。
例如,设置速度为 200 时,从 0 到 800 的动画将花费 4 秒钟;设置持续时间為 8000 时将花费 8 秒钟;同时设置速度为 200 和持续时间为 8000 时将花费 4 秒钟。设置速度为 200 时,从 0 到 20000 的动画将花费 10 秒钟;设置为持续时间為 8000 时将花费 8 秒钟;同时设置速度为 200 和持续时间为 8000 时将花费 8 秒钟。
SmoothedAnimation 的默认速度为每秒 200 单位。注意,如果动画值范围的跨度较小,则需要适当地调整速度。例如,项目的不透明度范围是 0 到 1.0。为了在此范围内启用平滑动画,速度需要设置为 0.5 单位/秒等值。使用 0.5 单位/秒的速度从 0 到 1.0 动画将花费 2000 毫秒来完成。
与其他动画类型一样,平滑动画可以通过多种方式应用,包括过渡、行为和属性值来源。《Qt Quick中的动画和过渡》文档展示了创建动画的各种方法。
另请参阅SpringAnimation、NumberAnimation、《Qt Quick中的动画和过渡》和《Qt Quick示例 - 动画》。
属性文档
duration : int |
该属性保存动画持续时长(以毫秒为单位),用于追踪来源。
将该值设置为-1(默认值)将禁用持续时间值。
如果速度值和持续时间值都启用,则动画将使用较短的时间。
maximumEasingTime : int |
该属性指定在跟踪期间任何“缓和”操作应持续最长时间,以毫秒为单位。设置此属性会使速度在一段时间后“平稳”。
默认值是-1。
reversingMode : enumeration |
设置当动画方向反转时,SmoothedAnimation的行为。
可能的值包括:
恒定 | 描述 |
---|---|
| (默认) 动画将平滑减速,然后反向 |
| 动画将立即开始以0速度反向加速 |
| 属性将立即设置为目标值 |
velocity : real |
© 2024 Qt公司。本文档中的文档贡献归其各自所有者所有。本文档提供的内容根据Free Software Foundation发布并由其发布的《GNU自由文档许可证版本1.3》的条款发行。