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

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

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

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

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

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

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

一、核心定义

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

二、行为特点对比

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

三、典型使用场景

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

四、组合使用示例

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

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

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

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

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


五、理解记忆图

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

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

六、一句话记住

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

相关推荐
Hh6910241 天前
2026年9月合肥多动症治疗选哪家
动画
白搞电子5 天前
ESP-Mosaico 桌宠为什么会误睡?AS312 PIR 原理、休眠逻辑与排错方法
单片机·嵌入式硬件·动画
EleganceJiaBao7 天前
【嵌入式】STM32 状态机设计:枚举、位掩码、结构体、变量与宏定义的合理选择
stm32·单片机·嵌入式硬件·枚举·状态机·位掩码
FungLeo11 天前
成为全栈·Node 后端篇·文章 CRUD 与投稿状态机
node.js·状态机·crud·成为全栈
AIGC大时代13 天前
LangGraph 生产级笔记:Checkpointer + interrupt(),把人审做成可恢复状态机
python·agent·状态机·langgraph·hitl
小江的记录本16 天前
【CSS】CSS 动画:transition、animation、transform、CSS3 新特性(附《思维导图》)
前端·css·安全·spring·前端框架·css3·动画
东莞市云毅网络有限公司16 天前
多平台内容分发管线的工程化设计:队列、幂等与断点续传
状态机·工程化·内容分发
Tisfy22 天前
LeetCode 3720.大于目标字符串的最小字典序排列:状态机 —— :从左往右枚举,失败则退回(最多退回一次)
linux·数据库·leetcode·字符串·状态机·构造
杨丰玮4181 个月前
从零手写Java飞机躲障碍游戏|Swing绘图、鼠标跟随、计时器碰撞检测实战(五)
java·python·游戏·游戏引擎·图形渲染·动画·贴图
同志啊为人民服务!1 个月前
伺服电机运动控制协议CiA402
状态机·伺服电机·cia402