kanzi--属性插值、状态机、动画

核心思路:三个工具的本质都是"改变属性"

在 Kanzi 中,UI 的外观和行为由属性 决定。

动画、状态机、属性插值 都是为了让属性发生变化,只是变化的方式和用途不同。

  • 动画:按预设的时间线改变一个或多个属性 → 属性变化会触发绑定的更新 → 从而改变 UI。

  • 状态机:根据逻辑状态切换,直接改变属性(可瞬间或过渡) → 属性变化同样触发绑定。

  • 属性插值:让一个属性平滑地"跟随"另一个源属性 → 跟随过程中不断改变目标属性。

一、核心定义

概念 一句话定义
属性插值 让一个属性平滑地跟随另一个属性(或目标值)的变化,自动计算中间过渡。
状态机 定义一组离散的逻辑状态(如白天/黑夜),以及状态之间的切换规则。
动画 让一个或多个属性按照预设的时间曲线变化(关键帧、累加器等)。

二、行为特点对比

维度 属性插值 状态机 动画
变化方式 连续、动态跟随(起点=当前值,终点=目标值) 离散跳转(可加过渡动画使其平滑) 连续、预设路径(起点和终点固定)
触发条件 监听的源属性值一改变就自动跟随 由用户交互、绑定、代码触发状态切换 需要显式调用 Play,或 Autoplay 自动播放
是否可循环 不支持循环,只做一次跟随 状态切换可双向多次发生 支持循环(Repeat Count / Infinite)
是否可预设关键帧 否(只根据目标值插值) 否(但切换时可加过渡动画) 是(关键帧动画的本质)
对动态目标值的响应 自动、实时响应任意变化 只能跳转到定义好的状态 不响应目标变化,只按预设路径执行

三、典型使用场景

工具 最适合做什么
属性插值 仪表盘指针、音量条、温度计等实时数据驱动的平滑指示器。
状态机 界面模式切换(白天/黑夜、登录/未登录、菜单展开/收起)、页面流控制。
动画 循环加载图标、进场/退场特效、进度条填充、复杂的关键帧特效(如充电线流动)。

四、组合使用示例

场景:一个按钮,点击后文字从"开"变"关",同时背景颜色从蓝渐变到红。

  • 状态机 负责:定义 On / Off 两个状态,并在每个状态下设置文字内容。

  • 动画 负责:创建一段颜色渐变的关键帧动画。

  • 状态机过渡动画 负责:在状态切换时,自动播放背景颜色的渐变过渡。

  • 属性插值(可选):如果背景颜色要跟随某个实时数据(如温度)变化,则用插值器使其平滑移动。


五、理解记忆图

复制代码
逻辑跳转  ←→  状态机
视觉连续  ←→  动画 / 属性插值

动画:预设路径,定时执行,适合重复或固定轨迹。
插值:动态跟随,随目标而变,适合实时数据。

六、一句话记住

状态机管"是什么模式",动画管"怎么按预设动",属性插值管"怎么平滑追随目标"。

相关推荐
用户70218157227873 天前
点了 3 次发布,3 次都成功了:我把发布流程改成了状态机
状态机
MoRanzhi12036 天前
第6篇(下)· 使用 PyQt5 实现 2048 高性能计算版:统一运行控制与跨模式安全交接
python·pyqt·进程管理·状态机·软件架构·并发控制·数据一致性
Hh69102412 天前
2026年10月合肥多动症排名
动画
Quz13 天前
QML TabBar 标签栏交互效果合集
qt·动画·qml
isyoungboy17 天前
事件驱动状态机与循环扫描状态机:两种计算模型的比较研究
算法·状态机
CappuccinoRose17 天前
CSS 动效基础
前端·css·动画·animation·transition
hey2020052818 天前
Maya怎么云渲染?云渲染使用教程详解!
3dsmax·动画·maya·3d渲染
贾伟康18 天前
HarmonyOS ArkUI 日历范围选择不歧义:本地日期键、闭区间与闰日校验
harmonyos·状态机·arkui·闰年·日期范围
Quz19 天前
QML PathView:直线路径与曲线路径
qt·动画·qml