HarmonyOS 应用开发《掌上英语》第46篇:单词卡片翻转——从旋转动画到用户交互
单词卡片翻转——从旋转动画到用户交互一、卡片翻转的应用场景在英语学习 App 中单词卡片是核心的学习交互方式。用户看到单词正面英文思考释义后翻转卡片看到背面中文释义 例句这是一个自然的学习流程。本项目中CourseHomePage实现了完整的单词卡片翻转功能包含 3D 旋转动画、正反面交叉淡入淡出、分类筛选、发音播放、掌握程度标记等交互。二、核心翻转动画2.1 状态变量LocalisFlipped:booleanfalse;// 翻转状态LocalrotateY:number0;// Y 轴旋转角度LocalfrontOpacity:number1;// 正面透明度LocalbackOpacity:number0;// 背面透明度四个变量共同控制卡片的视觉效果isFlipped用作文本状态标志rotateY控制 3D 旋转角度frontOpacity/backOpacity控制两面淡入淡出2.2 flipCard 方法privateflipCard():void{animateTo({duration:400,curve:Curve.EaseInOut},(){if(this.isFlipped){// 翻回正面this.rotateY0;this.frontOpacity1;this.backOpacity0;}else{// 翻到背面this.rotateY180;this.frontOpacity0;this.backOpacity1;}this.isFlipped!this.isFlipped;});}animateTo API这是 ArkUI 的显式动画接口。第一个参数是动画配置400ms 时长、EaseInOut 缓动曲线第二个参数是状态变更闭包。框架自动插值计算中间帧的rotateY值产生平滑的过渡效果。2.3 正反面 UI 结构Stack(){// 正面 - 显示单词Column(){Text(currentWord().word)// 英文单词.fontSize(34).fontWeight(FontWeight.Bold);Text(currentWord().phonetic)// 音标Text(currentWord().translation)// 中文释义Text(currentWord().example)// 例句}.rotate({x:0,y:this.rotateY,z:0,centerX:50%,centerY:50%,perspective:1200}).opacity(this.frontOpacity).onClick(()this.flipCard());// 背面 - 显示详细释义Column(){Text(详细释义)Text(currentWord().translation)Text(currentWord().example)Text(currentWord().exampleTranslation)// 分类标签}.rotate({x:0,y:this.rotateY-180,z:0,centerX:50%,centerY:50%,perspective:1200}).opacity(this.backOpacity).onClick(()this.flipCard());}正反两面通过Stack堆叠在一起。翻转到背面时rotateY变为 180 度同时背面的 rotation 为rotateY - 180即 -180→0 度这样在视觉上始终以正面朝向用户。perspective透视perspective: 1200设置了 3D 透视的视距。值越小3D 效果越明显值越大效果越平缓。1200 是一个较为自然的数值。三、前后翻页导航3.1 上一张 / 下一张privatenextCard():void{if(this.currentIndexthis.totalCount-1){// 翻页时重置翻转状态到正面this.isFlippedfalse;this.rotateY0;this.frontOpacity1;this.backOpacity0;this.isFavoritefalse;this.currentIndex;}}privateprevCard():void{if(this.currentIndex0){this.isFlippedfalse;this.rotateY0;this.frontOpacity1;this.backOpacity0;this.isFavoritefalse;this.currentIndex--;}}每次切换卡片时都重置翻转状态为正面未翻转。这确保了用户每次看到新卡片时都是熟悉的正面朝上状态。四、掌握程度标记4.1 用户交互Row({space:10}){Button(左滑 待复习).backgroundColor(#FFc000).onClick(()this.markUnfamiliar());Button(右滑 已掌握).backgroundColor(#165DFF).onClick(()this.markMastered());}4.2 标记逻辑privatemarkMastered():void{constwordthis.currentWord();GlobalContextUtils.showToast({message:已掌握:${word.word}});this.masteredCount;this.learnedCount;this.nextCard();}privatemarkUnfamiliar():void{constwordthis.currentWord();GlobalContextUtils.showToast({message:已加入生词本:${word.word}});this.learnedCount;this.nextCard();}两个按钮的共同点都通过showToast给用户即时反馈都增加learnedCount今日学习计数都自动跳到下一张卡片不同点markMastered增加masteredCount已掌握计数markUnfamiliar实际调用NewWordManager将单词加入生词本后续复习使用五、分类筛选卡片页支持按词汇分类筛选Tabs({barPosition:BarPosition.Start}){TabContent(){this.cardArea();}.tabBar(this.tabBuilder(全部,all));ForEach(WORD_CATEGORIES,(cat:WordCategory){TabContent(){this.cardArea();}.tabBar(this.tabBuilder(cat.label,cat.key));});}.barMode(BarMode.Scrollable).onTabBarClick((index:number){if(index0){this.currentCategoryall;}else{this.currentCategoryWORD_CATEGORIES[index-1].key;}this.currentIndex0;this.resetCardState();});BarMode.Scrollable使 Tab 在分类较多时可滚动通过onTabBarClick切换分类时重置卡片状态。分类筛选通过getFilteredWords()方法实现privategetFilteredWords():WordCard[]{if(this.currentCategoryall){returnDEFAULT_WORD_CARDS;// 500 词全量}returnDEFAULT_WORD_CARDS.filter(ww.categorythis.currentCategory);}六、发音功能privateplayPronunciation():void{constwordthis.currentWord();if(word.audioUrlword.audioUrl!){this.audioPlayer.play(word.audioUrl);}else{this.audioPlayer.play();// 播放系统默认提示音}}用户点击单词或音标旁的播放按钮时触发使用 AudioPlayer 单例播放当前单词的音频。七、动画性能优化卡片翻转动画涉及每一帧的旋转和透明度变化以下要点有助于保证动画流畅避免重复计算currentWord()在模板中多次调用ArkTS 的响应式系统会缓存结果使用 GPU 加速属性rotate和opacity是 GPU 加速属性不会触发 Layout 重排合理时长400ms 的动画时长经过实践验证既不会太快看不清也不会慢到让人等EaseInOut 缓动缓动曲线让动画在开始和结束时减速更加自然八、总结CourseHomePage 的卡片翻转实现是 ArkTS 动画系统的一个典型应用。通过animateTo驱动状态变更配合rotate和opacity实现立体的翻转效果。再加上分类筛选、发音播放、掌握标记等功能构成了一个完整的单词学习交互闭环。这个模式可以扩展到其他需要查看详情的场景——例如闪卡学习、选择题的答案解析等。

相关新闻

2026AI短剧全流程实战教程:从脚本生成到成片变现落地细节

2026AI短剧全流程实战教程:从脚本生成到成片变现落地细节

2026年的短剧行业,已经彻底告别真人团队垄断生产的时代。全网超95%的新增短剧内容由AI参与或全权制作,这不是行业噱头,是实打实的产业迭代结果。普通人一台电脑、单人操作,一周内就能完成一部完整竖屏短剧成片,而传统真…

2026/7/26 16:30:54阅读更多 →
Shizuku系统API桥梁:Android开发者的终极权限解决方案

Shizuku系统API桥梁:Android开发者的终极权限解决方案

Shizuku系统API桥梁:Android开发者的终极权限解决方案 【免费下载链接】Shizuku Using system APIs directly with adb/root privileges from normal apps through a Java process started with app_process. 项目地址: https://gitcode.com/gh_mirrors/sh/Shizuk…

2026/7/26 16:30:54阅读更多 →
Wand-Enhancer:零成本解锁WeMod专业版功能的终极方案

Wand-Enhancer:零成本解锁WeMod专业版功能的终极方案

Wand-Enhancer:零成本解锁WeMod专业版功能的终极方案 【免费下载链接】Wand-Enhancer Advanced UX and interoperability extension for Wand (WeMod) app 项目地址: https://gitcode.com/GitHub_Trending/we/Wand-Enhancer 还在为WeMod专业版的高昂订阅费用…

2026/7/26 16:30:54阅读更多 →
AIOps告警归因:提示工程四阶梯方法论与实践

AIOps告警归因:提示工程四阶梯方法论与实践

1. 告警归因的工程化困境凌晨三点,运维工程师小王被刺耳的告警铃声惊醒。监控大屏上同时闪烁着17条红色告警,这些告警来自不同的监控系统:有基础设施层的CPU峰值告警,有应用层的接口超时告警,还有业务层的订单失败告警…

2026/7/26 18:05:10阅读更多 →
Jellium Desktop网络自适应教程:无缝享受流畅播放体验

Jellium Desktop网络自适应教程:无缝享受流畅播放体验

Jellium Desktop网络自适应教程:无缝享受流畅播放体验 【免费下载链接】jellium-desktop An unofficial desktop client for Jellyfin 项目地址: https://gitcode.com/GitHub_Trending/je/jellium-desktop Jellium Desktop是一款非官方的Jellyfin桌面客户端&…

2026/7/26 18:05:10阅读更多 →
全面掌握Godot逆向工程:GDScript反编译工具深度技术指南

全面掌握Godot逆向工程:GDScript反编译工具深度技术指南

全面掌握Godot逆向工程:GDScript反编译工具深度技术指南 【免费下载链接】gdsdecomp Godot reverse engineering tools 项目地址: https://gitcode.com/GitHub_Trending/gd/gdsdecomp 在游戏开发与逆向工程领域,Godot引擎的PCK文件格式分析一直是…

2026/7/26 18:05:10阅读更多 →
3个简单步骤:在Apple Silicon Mac上轻松运行Windows应用的完整指南

3个简单步骤:在Apple Silicon Mac上轻松运行Windows应用的完整指南

3个简单步骤:在Apple Silicon Mac上轻松运行Windows应用的完整指南 【免费下载链接】Whisky A modern Wine wrapper for macOS built with SwiftUI 项目地址: https://gitcode.com/gh_mirrors/wh/Whisky 想在Apple Silicon Mac上运行Windows软件却不想安装笨…

2026/7/26 18:05:10阅读更多 →
如何在Windows上免费实现远程文件管理:SSHFS-Win-Manager完整指南

如何在Windows上免费实现远程文件管理:SSHFS-Win-Manager完整指南

如何在Windows上免费实现远程文件管理:SSHFS-Win-Manager完整指南 【免费下载链接】sshfs-win-manager A GUI for SSHFS-Win (https://github.com/billziss-gh/sshfs-win) 项目地址: https://gitcode.com/gh_mirrors/ss/sshfs-win-manager 如果你曾经为Windo…

2026/7/26 18:05:10阅读更多 →
5分钟搞定Honey Select 2完整汉化与去码:小白也能懂的终极指南

5分钟搞定Honey Select 2完整汉化与去码:小白也能懂的终极指南

5分钟搞定Honey Select 2完整汉化与去码:小白也能懂的终极指南 【免费下载链接】HS2-HF_Patch Automatically translate, uncensor and update HoneySelect2! 项目地址: https://gitcode.com/gh_mirrors/hs/HS2-HF_Patch 还在为Honey Select 2 Libido DX的日…

2026/7/26 18:03:10阅读更多 →
覆盖国产 + 海外 + 开源模型,OpenClaw 2.7.9 Windows/Mac 双端部署详解

覆盖国产 + 海外 + 开源模型,OpenClaw 2.7.9 Windows/Mac 双端部署详解

🔹 工具基础介绍 OpenClaw 是开源生态中一款实用性较强的本地智能工具,凭借本地离线运行、可视化图形操作和任务自动化三大核心特性,赢得了众多用户的青睐。与普通在线对话AI工具不同,它属于能够直接操控本机软硬件的智能数字员工…

2026/7/26 0:01:28阅读更多 →
伺服阀焊完微漏毁整机?精密激光焊接三关锁住高压

伺服阀焊完微漏毁整机?精密激光焊接三关锁住高压

所谓液压伺服阀体的精密激光焊接,是用激光束对阀座壳体(通常为不锈钢或铝合金)进行密封焊接,使阀体在21-35MPa的高压液压油或压缩气体中长期运行而不发生介质泄漏。液压伺服阀是高端液压系统的"大脑"。从航空航天飞行控…

2026/7/26 0:01:28阅读更多 →
D2DX:三步实现《暗黑破坏神2》高清宽屏体验的终极指南

D2DX:三步实现《暗黑破坏神2》高清宽屏体验的终极指南

D2DX:三步实现《暗黑破坏神2》高清宽屏体验的终极指南 【免费下载链接】d2dx D2DX is a complete solution to make Diablo II run well on modern PCs, with high fps and better resolutions. 项目地址: https://gitcode.com/gh_mirrors/d2/d2dx 你是否还在…

2026/7/26 0:01:28阅读更多 →
覆盖国产 + 海外 + 开源模型,OpenClaw 2.7.9 Windows/Mac 双端部署详解

覆盖国产 + 海外 + 开源模型,OpenClaw 2.7.9 Windows/Mac 双端部署详解

🔹 工具基础介绍 OpenClaw 是开源生态中一款实用性较强的本地智能工具,凭借本地离线运行、可视化图形操作和任务自动化三大核心特性,赢得了众多用户的青睐。与普通在线对话AI工具不同,它属于能够直接操控本机软硬件的智能数字员工…

2026/7/26 0:01:28阅读更多 →
伺服阀焊完微漏毁整机?精密激光焊接三关锁住高压

伺服阀焊完微漏毁整机?精密激光焊接三关锁住高压

所谓液压伺服阀体的精密激光焊接,是用激光束对阀座壳体(通常为不锈钢或铝合金)进行密封焊接,使阀体在21-35MPa的高压液压油或压缩气体中长期运行而不发生介质泄漏。液压伺服阀是高端液压系统的"大脑"。从航空航天飞行控…

2026/7/26 0:01:28阅读更多 →
D2DX:三步实现《暗黑破坏神2》高清宽屏体验的终极指南

D2DX:三步实现《暗黑破坏神2》高清宽屏体验的终极指南

D2DX:三步实现《暗黑破坏神2》高清宽屏体验的终极指南 【免费下载链接】d2dx D2DX is a complete solution to make Diablo II run well on modern PCs, with high fps and better resolutions. 项目地址: https://gitcode.com/gh_mirrors/d2/d2dx 你是否还在…

2026/7/26 0:01:28阅读更多 →
YOLOv8推理性能优化:从1.2FPS到35FPS的全链路加速实践

YOLOv8推理性能优化:从1.2FPS到35FPS的全链路加速实践

如果你在部署 YOLOv8 时,发现推理速度只有可怜的 1-2 FPS,而别人的演示视频却能跑到 30 FPS 以上,那么问题很可能不在模型本身,而在于你的整个处理链路。很多开发者拿到一个训练好的 YOLOv8 模型后,会直接使用官方示例…

2026/7/25 23:03:25阅读更多 →
Coze与Dify对比指南:低代码AI应用开发从入门到实战

Coze与Dify对比指南:低代码AI应用开发从入门到实战

1. 从零到一:为什么你需要了解 Coze 和 Dify?如果你对 AI 应用开发感兴趣,但一看到“大模型”、“智能体”、“工作流”这些词就头疼,觉得门槛太高,那这篇文章就是为你准备的。很多开发者,包括我自己&#…

2026/7/25 19:03:04阅读更多 →
AI生图工具怎么选?2026年6月版实测对比

AI生图工具怎么选?2026年6月版实测对比

做自媒体的朋友应该都有体会:配图一直是个让人头疼的问题。2026年,AI生图工具已经非常成熟了,但工具太多反而不知道怎么选。以下是截至2026年6月我对主流AI生图工具的实测对比。Midjourney V8.1:速度之王2026年6月11日&#xff0c…

2026/7/25 19:03:04阅读更多 →