HarmonyOS应用《玄象》开发实战:@Watch 监听卦象变化触发动画

📅 发布时间:2026/7/26 21:50:55
HarmonyOS应用《玄象》开发实战:@Watch 监听卦象变化触发动画 阅读时长约 18 分钟 | 难度★★★★☆ | 篇章第 5 篇 · 周易易学模块对应源码entry/src/main/ets/pages/yijing/CastDivinationPage.ets前言玄象项目起卦页在用户 18 次三变完成后会触发卦象绘制的动画反馈——六爻从下到上逐爻出现动爻高亮闪烁。这一动画效果通过Watch装饰器监听State卦象数据变化实现。本篇将深入剖析玄象项目Watch监听卦象变化触发动画的实现从Watch装饰器原理、State与Watch的协作、动画触发时机到逐爻动画与动爻闪烁。掌握这套Watch监听动画触发机制您就能为任何 HarmonyOS 应用实现数据驱动的动画反馈。提示Watch是 ArkUI 的观察者装饰器在State变量变化时自动调用回调函数。一、Watch 装饰器1.1 Watch 基本用法StateWatch(onHexagramChanged)yaos:number[][];privateonHexagramChanged():void{this.animateHexagram();}二、逐爻动画2.1 逐爻出现StatevisibleYaoCount:number0;privateanimateHexagram():void{this.visibleYaoCount0;constintervalsetInterval((){this.visibleYaoCount;if(this.visibleYaoCount6){clearInterval(interval);}},300);}三、UI 绑定3.1 条件渲染ForEach(this.yaos.slice(0,this.visibleYaoCount),(yao:number,index:number){// 渲染爻if(yao7||yao9){this.drawYangYao(canvas,x,yindex*10,width,6);}else{this.drawYinYao(canvas,x,yindex*10,width,6);}})四、Watch 设计总结4.1 数据流用户点击开始起卦 ↓ castHexagram() 生成 6 爻 ↓ State yaos 更新 ↓ Watch(onHexagramChanged) 触发 ↓ animateHexagram() 启动逐爻动画 ↓ visibleYaoCount 逐步增加 ↓ Canvas 逐爻绘制 ↓ 动画完成总结本篇以玄象项目起卦页动画反馈为蓝本深入剖析了Watch装饰器的使用从Watch原理、State与Watch的协作、动画触发时机到逐爻动画与动爻闪烁。掌握这套Watch监听动画触发机制您就能为任何 HarmonyOS 应用实现数据驱动的动画反馈。如果这篇文章对你有帮助欢迎点赞、收藏⭐、关注你的支持是我持续创作的动力相关资源HarmonyOS 官方文档Watch 装饰器开源鸿蒙跨平台社区https://openharmonycrossplatform.csdn.net