尧图网络 高端网站定制 · 原创设计
免费咨询热线
400-888-6620
免费获取方案
HarmonyOS应用开发实战:猫猫大作战-EventHub 事件总线
前言EventHub是 HarmonyOS 的事件总线机制用于组件或模块之间的松耦合通信。在「猫猫大作战」中EventHub 用于音效播放、得分变更、游戏状态切换等跨组件通知。一、EventHub 基础import{EventHub}fromkit.ArkUI;// 创建 EventHubconsteventHubnewEventHub();// 订阅事件eventHub.on(scoreChanged,(score:number){console.info(得分更新:${score});// 更新 UI 等});// 发布事件eventHub.emit(scoreChanged,2450);二、游戏中的应用// 音效管理模块 — 订阅事件classSFXService{constructor(hub:EventHub){hub.on(playMerge,()this.play(merge));hub.on(playLevelUp,()this.play(level_up));hub.on(playGameOver,()this.play(game_over));hub.on(playButton,()this.play(button));}privateplay(name:string):void{console.info(播放音效:${name});}}// 游戏引擎 — 发布事件classGameEngine{privatehub:EventHub;constructor(hub:EventHub){this.hubhub;}onMerge():void{this.hub.emit(playMerge);}onGameOver():void{this.hub.emit(playGameOver);}}三、EventHub vs State特性EventHubState通信范围任意模块组件树耦合度低松耦合中父子依赖数据流单向事件双向绑定调试较难追踪易追踪适用场景跨模块通知UI 状态同步四、最佳实践事件命名规范playMerge、stateChanged动词名词订阅在初始化aboutToAppear时订阅取消订阅hub.off(eventName)防内存泄漏不传递复杂对象只传递必要的数据参数五、事件列表事件名数据触发时机playMerge无合并时playLevelUp等级升级时playGameOver得分结束时scoreChanged得分得分变化stateChanged状态状态切换总结EventHub 实现跨模块的松耦合事件通信适合音效播放等全局通知。核心要点hub.on()订阅、hub.emit()发布、 注意取消订阅防泄漏。如果这篇文章对你有帮助欢迎点赞、收藏⭐、关注你的支持是我持续创作的动力相关资源EventHub 官方文档第 107 篇Extend第 109 篇startAbility第 110 篇startByType
RELATED

相关推荐

I2C总线协议详解:从核心原理到实战调试与常见问题排查

I2C总线协议详解:从核心原理到实战调试与常见问题排查

1. 项目概述:深入理解I2C总线如果你玩过单片机或者嵌入式开发,那么I2C这个名字你一定不陌生。它就像电路板上的“隐形高速公路”,负责连接主控芯片和各种传感器、存储器、IO扩展芯片等外围设备。我最早接触I2C是在一个温湿度监测项目里&#…

📅 2026/8/23 2:13:35
2026降AI率最有效方法:知网/Turnitin ai率怎么降?论文降ai这样做通过率100%

2026降AI率最有效方法:知网/Turnitin ai率怎么降?论文降ai这样做通过率100%

一、论文高AI率的常见原因与严重后果 不少同学明明自己写的论文,却被检测出高AI率,核心原因主要有四类。一是模板被AI污染,网上下载的范文或模板本身就是AI生成,直接使用易触发检测;二是长期依赖AI辅助写作&#xff0c…

📅 2026/8/23 2:13:35
Python与PyCharm零基础安装配置指南:从环境搭建到高效开发

Python与PyCharm零基础安装配置指南:从环境搭建到高效开发

1. 项目概述:为什么从Python和PyCharm开始? 如果你刚接触编程,或者想从其他语言转向Python,那么“安装”和“配置”就是你的第一道门槛。很多人觉得这很简单,不就是点几下“下一步”吗?但恰恰是这第一步&a…

📅 2026/8/23 2:13:36
MORE NEWS

更多资讯

📰

tsParticles PrismScatter 棱镜散射调色板实战指南:从色板解析到粒子效果落地

tsParticles PrismScatter 棱镜散射调色板实战指南:从色板解析到粒子效果落地 【免费下载链接】tsparticles tsParticles - Easily create highly customizable JavaScript particles effects, confetti explosions and fireworks animations and use them as anima…

📰

BabelDOC 新手实战:从英文 PDF 到双语对照版,3 步完成且版式不塌

BabelDOC 新手实战:从英文 PDF 到双语对照版,3 步完成且版式不塌 【免费下载链接】BabelDOC Yet Another Document Translator 项目地址: https://gitcode.com/GitHub_Trending/ba/BabelDOC BabelDOC 是一个开源的 PDF 双语翻译工具,主…

📰

PPTX课件解构:学术英语视听说教学资产的自动化复用

简介:本资源为《新世纪学术英语视听说》课程配套的Lesson级PPT课件,面向高校英语专业教师、语言类课程授课者及自主提升学术英语听说能力的学习者,有效解决课堂可视化教学素材匮乏、真实学术语境输入不足等实际问题。压缩包仅含1个71KB的.ppt…

📰

styled-components React Native `flex` 简写规范化修复:`flex: initial`、零基准与负值处理全解析

styled-components React Native flex 简写规范化修复:flex: initial、零基准与负值处理全解析 【免费下载链接】styled-components Fast, expressive styling for React. Server components, client components, streaming SSR, React Native—one API. 项目地址…

📰

UFS 3.1实战调试:从M-PHY信号到SCSI命令的全链路解析

/* MD / 富文本中的 .toc(含博客园搬家等嵌套结构);.toc-box 在侧栏,不受影响 */#content_views .toc,/* 编辑器常在目录前后插入空 p(:empty 仍占 20px),一并去掉避免顶空隙 */#content_views.markdown_views > p:empty:has(+ .toc),#content_views.markdown_views …

📰

CANN ops-math ReduceStdWithMean 算子深度解析:从 torch.std_mean 到 BatchNorm 统计量的 Two-Pass 归约实现

算子库人工智能CANN 【免费下载链接】ops-math 本项目是CANN提供的数学类基础计算算子库,实现网络在NPU上加速计算。 项目地址: https://gitcode.com/cann/ops-math 点击查看 免费下载 本文围绕 CANN ops-math 仓库中 experimental/math/reduce_std_wit…

TODAY

今日更新

THIS WEEK

本周精选

THIS MONTH

本月热门

读完文章,想聊聊您的网站?

告诉我们您的行业与需求,资深顾问一对一梳理方案与报价,全程免费。

📞 💬