IT数码 购物 网址 头条 软件 日历 阅读 图书馆
TxT小说阅读器
↓语音阅读,小说下载,古典文学↓
图片批量下载器
↓批量下载图片,美女图库↓
图片自动播放器
↓图片自动播放器↓
一键清除垃圾
↓轻轻一点,清除系统垃圾↓
开发: C++知识库 Java知识库 JavaScript Python PHP知识库 人工智能 区块链 大数据 移动开发 嵌入式 开发工具 数据结构与算法 开发测试 游戏开发 网络协议 系统运维
教程: HTML教程 CSS教程 JavaScript教程 Go语言教程 JQuery教程 VUE教程 VUE3教程 Bootstrap教程 SQL数据库教程 C语言教程 C++教程 Java教程 Python教程 Python3教程 C#教程
数码: 电脑 笔记本 显卡 显示器 固态硬盘 硬盘 耳机 手机 iphone vivo oppo 小米 华为 单反 装机 图拉丁
 
   -> 游戏开发 -> Roson讲Qt#32 QML动画中的重要概念(States、Transitions、Animations ) -> 正文阅读

[游戏开发]Roson讲Qt#32 QML动画中的重要概念(States、Transitions、Animations )

?
在任何现代用户界面中,状态之间的转换和用户界面的动画都是非常有益的。这些都是Qt Quick中的一流概念。这本文描述了状态、状态转换和属性动画的概念。它详细说明了哪些概念是重要的,为什么重要,以及这些概念是如何相互关联的。

1.States(状态)

特定可视项的状态是一组信息,它描述了可视项的各个组成部分如何以及在其中显示的位置,以及与该状态相关联的所有数据。用户界面中的大多数可视项都有有限数量的状态,每个状态都有明确定义的属性。
例如,列表中的一个元素可能被选中,也可能没有被选中,如果被选中,它可能是当前活动的单个选择,也可能是选择组的一部分。
每一种状态都可能具有某种相关的视觉外观(中立、突出显示、展开等等)。
Qt Quick提供了一个带有属性的状态类型,这些属性定义了它的语义,可以用来触发行为或动画。有关更多信息,请参阅Qt Quick States文档。


2.Transitions(转换)

当一个可视项从一种状态转换到另一种状态时,该项的外观将发生变化。过渡是两个国家之间的“边缘”。它可能会触发其他事件发生,因为应用程序的其他部分可能会在进入或离开某个状态时触发行为。

Qt Quick提供了Transition类型,该类型具有定义应用程序从一种状态更改到另一种状态时将发生什么的属性。有关转换的更多信息,请参阅“Transitions during State Changes文档。

?

3.Animations(动画)

在状态之间转换时,可以使用流体动画在转换期间帮助用户。视觉画布的突然和意想不到的变化会导致不佳的用户体验,应该避免。
如果列表中的一个元素被选中,颜色变化(从中性到突出显示)可以是动态的。如果元素在列表中的位置发生了更改,则可以以流畅的动画方式移动它,以便用户的眼睛能够跟踪更改。
Qt Quick通过各种动画和转换类型支持这些类型的动画。有关这些类型的信息以及如何使用它们,请参阅Animations and Transitions In Qt Quick?。


4.?Animating Property Assignments(动画属性赋值)

动画不仅仅与状态和状态之间的转换有关。例如,一个动画可能是由其他事件触发的,这些事件与不同的状态没有关联。

无论改变的原因是什么(例如,不透明度效果),对视觉项目的某些属性进行动画化改变通常是有益的。Qt Quick提供了Behavior类型,允许客户端为属性更改指定动画行为。Behavior类型是QML对象属性修饰符的一个例子。

有关使用行为类型提供默认属性更改动画的更多信息,请参阅default property animations。

需要注意的是,使用默认属性动画(通过行为类型)与状态转换动画组合有时会导致未定义的行为发生。有关此主题的更多信息,请参阅using Qt Quick Behaviors with States。

?

5.Animators(动画家)?

Animator类型是一种特殊的动画类型,它绕过QML对象,直接对场景图中的原语进行操作。这样做的好处是,基于Animator的动画可以在场景图的渲染线程上运行(如果适用的话),即使UI被阻塞也可以继续动画。

Qt Quick提供了以下动画器类型:

  • XAnimator - 修改一个项目的水平位置.
  • YAnimator - 修改一个项目的垂直位置.
  • ScaleAnimator - 修改一个项目的比例系数
  • RotationAnimator - 使一个项目旋转.
  • OpacityAnimator - 动态改变一个项目的不透明度
  • UniformAnimator - ?在着色器效果中设置统一的效果


6.Animated Sprites(动画精灵)

动画精灵的概念与本文其他地方使用的动画概念是分开的。如果你想创建或使用动画图像或精灵,请参阅sprite animations。

?

?

  游戏开发 最新文章
6、英飞凌-AURIX-TC3XX: PWM实验之使用 GT
泛型自动装箱
CubeMax添加Rtthread操作系统 组件STM32F10
python多线程编程:如何优雅地关闭线程
数据类型隐式转换导致的阻塞
WebAPi实现多文件上传,并附带参数
from origin ‘null‘ has been blocked by
UE4 蓝图调用C++函数(附带项目工程)
Unity学习笔记(一)结构体的简单理解与应用
【Memory As a Programming Concept in C a
上一篇文章      下一篇文章      查看所有文章
加:2021-09-24 10:56:45  更:2021-09-24 10:56:49 
 
开发: C++知识库 Java知识库 JavaScript Python PHP知识库 人工智能 区块链 大数据 移动开发 嵌入式 开发工具 数据结构与算法 开发测试 游戏开发 网络协议 系统运维
教程: HTML教程 CSS教程 JavaScript教程 Go语言教程 JQuery教程 VUE教程 VUE3教程 Bootstrap教程 SQL数据库教程 C语言教程 C++教程 Java教程 Python教程 Python3教程 C#教程
数码: 电脑 笔记本 显卡 显示器 固态硬盘 硬盘 耳机 手机 iphone vivo oppo 小米 华为 单反 装机 图拉丁

360图书馆 购物 三丰科技 阅读网 日历 万年历 2024年11日历 -2024/11/28 4:36:38-

图片自动播放器
↓图片自动播放器↓
TxT小说阅读器
↓语音阅读,小说下载,古典文学↓
一键清除垃圾
↓轻轻一点,清除系统垃圾↓
图片批量下载器
↓批量下载图片,美女图库↓
  网站联系: qq:121756557 email:121756557@qq.com  IT数码