发布时间:2026/6/20 20:05:27
鸿蒙App开发--心愿池的动画特效:投币动画与进度条
心愿池的动画特效投币动画与进度条如果你有心愿目标想攒钱实现推荐去鸿蒙应用市场搜一下**「心愿池」**下载体验体验。创建心愿、投币储蓄、追踪进度一套走下来对攒钱目标会有更清晰的把控。体验完再回来看这篇文章你会更清楚投币动画和进度条背后是怎么实现的。写在前面大家好我是一名写了十多年Web前端的老兵。从jQuery时代一路走到React/VueCSS3动画、requestAnimationFrame、Web Animation API这些都算是看家本领。去年开始转战鸿蒙生态用ArkTS开发App这一路踩了不少坑也积累了不少心得。很多人觉得前端转鸿蒙应该很容易——都是写UI嘛组件化、状态管理、生命周期概念都差不多。但真正上手之后你会发现相似的地方让你觉得亲切不同的地方让你抓狂。比如动画实现Web用CSSkeyframes或requestAnimationFrame鸿蒙用animator模块。数据存储Web的localStorage到了ArkTS变成了ohos.data.preferences。状态管理React的useState变成了State。接下来这篇文章我会用心愿池的实际开发经历带你看看投币动画、进度条动画、成就系统的实现。这篇文章聊什么心愿池的动画特效功能核心要解决三个问题投币动画投币时的视觉反馈进度条动画储蓄进度的平滑动画成就系统激励用户坚持储蓄第一步心愿数据结构interfaceWish{id:string;name:string;category:string;// 8种分类priority:string;// high/medium/lowtargetAmount:number;savedAmount:number;progress:number;// 0-1records:SavingsRecord[];createdAt:number;}interfaceSavingsRecord{id:string;amount:number;note:string;timestamp:number;}// 8种心愿分类constWISH_CATEGORIES[{id:travel,name:旅行,icon:✈️},{id:tech,name:数码,icon:},{id:education,name:学习,icon:},{id:home,name:家居,icon:},{id:fashion,name:时尚,icon:},{id:health,name:健康,icon:},{id:hobby,name:爱好,icon:},{id:other,name:其他,icon:}];第二步投币动画EntryComponentstruct WishDetailPage{Statewish:Wish|nullnullStatecoinAnimation:booleanfalseStateprogressValue:number0privateanim:AnimatorResult|nullnullaboutToDisappear(){if(this.anim){this.anim.cancel()}}// 投币动画playCoinAnimation(){this.coinAnimationtrue;this.animanimator.create({duration:800,iterations:1,curve:EaseOut});this.anim.onFrame(value:number){// 0-0.5: 硬币下落// 0.5-1: 进度条更新if(value0.5){// 硬币下落阶段}else{// 进度条更新阶段this.progressValuethis.wish?this.wish.progress:0;}};this.anim.onFinish(){this.coinAnimationfalse;};this.anim.play()}// 快速投币asyncquickSave(amount:number){if(!this.wish)return;constrecord:SavingsRecord{id:save_${Date.now()},amount,note:,timestamp:Date.now()};this.wish.records.push(record);this.wish.savedAmountamount;this.wish.progressMath.min(this.wish.savedAmount/this.wish.targetAmount,1);awaitthis.saveWish();this.playCoinAnimation();}asyncsaveWish(){if(!this.wish)return;conststoreawaitpreferences.getPreferences(getContext(),xinyuanchi_data);letwishes:Wish[]JSON.parse(awaitstore.get(wishes,[])asstring);constindexwishes.findIndex(ww.idthis.wish!.id);if(index-1){wishes[index]this.wish;}awaitstore.set(wishes,JSON.stringify(wishes));awaitstore.flush();}build(){Column(){if(this.wish){// 心愿名称Text(this.wish.name).fontSize(24).fontWeight(FontWeight.Bold).margin({bottom:8})// 进度环Stack(){Circle({width:160,height:160}).stroke(#374151).strokeWidth(12).fill(transparent)Circle({width:160,height:160}).stroke(#A855F7).strokeWidth(12).fill(transparent).strokeDashArray([this.progressValue*500,500])Column(){Text(${Math.round(this.progressValue*100)}%).fontSize(32).fontWeight(FontWeight.Bold).fontColor(#A855F7)Text(¥${this.wish.savedAmount}/ ¥${this.wish.targetAmount}).fontSize(12).fontColor(#9CA3AF)}}.margin({top:16,bottom:24})// 快速投币Text(快速投币).fontSize(14).fontColor(#9CA3AF).margin({bottom:8})Flex({wrap:FlexWrap.Wrap}){ForEach([10,50,100,500],(amount:number){Button(¥${amount}).onClick(()this.quickSave(amount)).width(70).height(40).margin(4).backgroundColor(#A855F7).borderRadius(20)})}.justifyContent(FlexAlign.Center)}}.width(100%).height(100%).padding(16).backgroundColor(#111827)}}第三步成就系统constACHIEVEMENTS[{id:first_wish,name:许愿,desc:创建第一个心愿,check:(s)s.wishCount1},{id:first_save,name:第一笔,desc:完成第一次储蓄,check:(s)s.saveCount1},{id:ten_saves,name:坚持储蓄,desc:累计储蓄10次,check:(s)s.saveCount10},{id:first_complete,name:心愿达成,desc:完成第一个心愿,check:(s)s.completedWishes1},{id:total_1000,name:千元储蓄,desc:累计储蓄1000元,check:(s)s.totalSaved1000},{id:total_10000,name:万元储蓄,desc:累计储蓄10000元,check:(s)s.totalSaved10000},{id:five_wishes,name:多心愿,desc:同时管理5个心愿,check:(s)s.wishCount5},{id:streak_30,name:连续30天,desc:连续30天有储蓄,check:(s)s.consecutiveDays30}];总结这篇文章围绕心愿池的动画特效功能讲解了三个核心主题投币动画用animator实现硬币下落和进度更新的两阶段动画进度环用strokeDashArray实现圆弧进度条成就系统8个成就激励用户坚持储蓄进度环的核心是strokeDashArray——通过控制虚线的长度来显示进度。这个技巧在Web和鸿蒙里都适用。如果你有心愿目标想攒钱实现希望这篇文章能帮你理解心愿池背后的动画实现。去鸿蒙应用市场下载体验一下吧有问题欢迎交流。

相关新闻

实测才敢推 AI论文网站2026最新测评:这几款真的好用
2026/6/20 19:45:34

实测才敢推 AI论文网站2026最新测评:这几款真的好用

2026年真正好用的AI论文网站,核心看生成的论文质量、低AI味、格式正确、学术适配四大指标。综合实测,千笔AI、ThouPen、豆包、DeepSeek、Grammarly 是当前最值得推荐的梯队,覆盖从免费到付费、从中文到英文、从文科到理工的全场景需求。 一、…

阅读更多
终极指南:如何用GetQzonehistory完整备份你的QQ空间数字记忆
2026/6/15 8:54:51

终极指南:如何用GetQzonehistory完整备份你的QQ空间数字记忆

终极指南:如何用GetQzonehistory完整备份你的QQ空间数字记忆 【免费下载链接】GetQzonehistory 获取QQ空间发布的历史说说 项目地址: https://gitcode.com/GitHub_Trending/ge/GetQzonehistory 你是否曾担心那些记录着青春时光的QQ空间说说会随着时间流逝而消…

阅读更多
用过才敢说!盘点2026年风靡全网的一键生成论文工具
2026/6/20 4:38:02

用过才敢说!盘点2026年风靡全网的一键生成论文工具

一天写完毕业论文在2026年已不再是天方夜谭。以下是2026年最炸裂、实测能大幅提速的一键生成论文工具,覆盖选题构思、文献整理、内容生成、格式排版四大核心场景,帮你高效搞定论文。 一、全流程王者:一站式搞定论文全链路(一天定稿…

阅读更多
ComfyUI架构变更深度分析:Impact Pack兼容性问题的3种技术解决方案
2026/6/20 19:59:12

ComfyUI架构变更深度分析:Impact Pack兼容性问题的3种技术解决方案

ComfyUI架构变更深度分析:Impact Pack兼容性问题的3种技术解决方案 【免费下载链接】ComfyUI-Impact-Pack Custom nodes pack for ComfyUI This custom node helps to conveniently enhance images through Detector, Detailer, Upscaler, Pipe, and more. 项目地…

阅读更多
3个高效解密技巧:RPG Maker MV资源提取终极指南
2026/6/20 19:59:12

3个高效解密技巧:RPG Maker MV资源提取终极指南

3个高效解密技巧:RPG Maker MV资源提取终极指南 【免费下载链接】RPG-Maker-MV-Decrypter You can decrypt RPG-Maker-MV Resource Files with this project ~ If you dont wanna download it, you can use the Script on my HP: 项目地址: https://gitcode.com/g…

阅读更多
如何用MouseTracks可视化你的数字足迹:从数据记录到行为洞察的完整指南
2026/6/20 19:59:12

如何用MouseTracks可视化你的数字足迹:从数据记录到行为洞察的完整指南

如何用MouseTracks可视化你的数字足迹:从数据记录到行为洞察的完整指南 【免费下载链接】MouseTracks Track and display mouse, keyboard and gamepad information for different applications. 项目地址: https://gitcode.com/gh_mirrors/mo/MouseTracks 你…

阅读更多
emWin实战:RADIO与QRCODE控件API详解与避坑指南
2026/6/20 19:59:12

emWin实战:RADIO与QRCODE控件API详解与避坑指南

1. 项目概述与核心价值在嵌入式GUI开发这片战场上,控件就像是构建交互界面的“乐高积木”。你手头可能有一块功能强大的MCU,一块色彩鲜艳的显示屏,但如何让用户能直观、高效地与你的设备对话,这中间的桥梁就是各种控件。今天&…

阅读更多
Gemini 3.5 Flash 深度解析:低成本高吞吐的工程实践指南
2026/6/20 19:59:12

Gemini 3.5 Flash 深度解析:低成本高吞吐的工程实践指南

1. 项目概述:一场被误读的“泄露”——Gemini 3.2 Flash 根本不存在,但它的影子正在真实改变开发者的成本结构 “Gemini 3.2 Flash 震惊泄露”这个标题,第一眼就带着强烈的传播张力:有编号(3.2)、有型号&a…

阅读更多
2026 年 PMP 培训机构怎么选?老考生整理 5 大硬核评判标准,避开 90% 行业套路
2026/6/20 18:59:12

2026 年 PMP 培训机构怎么选?老考生整理 5 大硬核评判标准,避开 90% 行业套路

前言在职场晋升赛道里,PMP 项目管理认证早已成为技术转管理、项目经理加薪跳槽的核心加分项。2026 年全国报考人数持续上涨,市场上大大小小的培训机构层出不穷,不少考生踩坑交了冤枉钱:有的机构低价引流,后续题库、代报…

阅读更多
别再只用BERT了!用Transformers库的AutoModel,5分钟搞定文本相似度计算(附代码对比)
2026/6/17 23:21:18

别再只用BERT了!用Transformers库的AutoModel,5分钟搞定文本相似度计算(附代码对比)

超越BERT:用Transformers库高效实现文本相似度计算的三种实战方案在自然语言处理领域,文本相似度计算是信息检索、问答系统和推荐系统等应用的核心技术。传统方法如TF-IDF或Word2Vec已逐渐被基于Transformer的预训练模型所取代。Hugging Face的Transform…

阅读更多
Prompt Engineering:重构人机协作的工程化方法论
2026/6/18 4:35:02

Prompt Engineering:重构人机协作的工程化方法论

1. 项目概述:这不是“写提示词”,而是重构人机协作的底层逻辑“Prompt Engineering”这个词,这两年被讲得太多,也太轻飘。很多人把它理解成“给AI发指令的技巧”,甚至简化为“多加几个形容词”“换种说法再试一次”。我…

阅读更多
Anthropic提示层归零:模型即协议的工程实践
2026/6/18 15:04:04

Anthropic提示层归零:模型即协议的工程实践

1. 项目概述:这不是一次普通更新,而是一次架构级“蒸发”“Anthropic Just Shipped the Layer That’s Already Going to Zero”——这个标题一出来,我正在调试一个Claude调用链的终端前停了三秒。不是因为震惊,而是因为熟悉&…

阅读更多
洛雪音乐终极音源指南:一站式获取全网无损音乐的完整解决方案
2026/6/20 0:59:03

洛雪音乐终极音源指南:一站式获取全网无损音乐的完整解决方案

洛雪音乐终极音源指南:一站式获取全网无损音乐的完整解决方案 【免费下载链接】lxmusic- lxmusic(洛雪音乐)全网最新最全音源 项目地址: https://gitcode.com/gh_mirrors/lx/lxmusic- 你是否厌倦了在不同音乐平台之间来回切换,只为找到一首歌的无…

阅读更多
Display Driver Uninstaller深度清理方案:显卡驱动残留问题的终极解决方案(2024版)
2026/6/20 0:59:03

Display Driver Uninstaller深度清理方案:显卡驱动残留问题的终极解决方案(2024版)

Display Driver Uninstaller深度清理方案:显卡驱动残留问题的终极解决方案(2024版) 【免费下载链接】display-drivers-uninstaller Display Driver Uninstaller (DDU) a driver removal utility / cleaner utility 项目地址: https://gitco…

阅读更多
深入解析MC68HC908AS32A的SCI模块:从异步通信原理到寄存器实战配置
2026/6/20 0:59:03

深入解析MC68HC908AS32A的SCI模块:从异步通信原理到寄存器实战配置

1. 项目概述:深入MC68HC908AS32A的异步串行通信核心在嵌入式系统开发中,尤其是面对工业控制、车载电子或智能仪表这类需要设备间稳定对话的场景,串行通信接口(SCI)往往是工程师最可靠的老朋友。它不像并行总线那样需要…

阅读更多
GIT修改用户名
2026/6/20 3:11:17

GIT修改用户名

在GIT中修改用户名可按以下步骤操作: 查看当前git的用户名,使用命令git config --list或git config user.name。修改git用户名,使用命令git config --global user.name "xxx(新的用户名)",将其中…

阅读更多
Win11Debloat:让你的Windows系统重获新生的终极优化工具
2026/6/19 20:40:12

Win11Debloat:让你的Windows系统重获新生的终极优化工具

Win11Debloat:让你的Windows系统重获新生的终极优化工具 【免费下载链接】Win11Debloat A simple, lightweight PowerShell script that allows you to remove pre-installed apps, disable telemetry, as well as perform various other changes to declutter and …

阅读更多
技术深度解析:m4s-converter实现原理与B站缓存视频转换最佳实践
2026/6/20 7:34:01

技术深度解析:m4s-converter实现原理与B站缓存视频转换最佳实践

技术深度解析:m4s-converter实现原理与B站缓存视频转换最佳实践 【免费下载链接】m4s-converter 一个跨平台小工具,将bilibili缓存的m4s格式音视频文件合并成mp4 项目地址: https://gitcode.com/gh_mirrors/m4/m4s-converter m4s-converter是一个…

阅读更多