当前位置: 首页 > news >正文

【包教包会】CocosCreator3.x全局单例最优解

演示Demo:https://gitee.com/szrpf/GlobalModuleDemo

打开Demo,运行场景HelloWorld,控制台打印结果:

image

打开HelloWorld.ts可以发现,aa无需导入就可以在任意脚本中使用
挂在aa下面的属性和方法就是全局的

打开Global/Base.ts

image

Audio.ts 和 Palette.ts同理,可以类比全局的音频模块和全局的自定义组件

Q:为什么属性和方法可以扩展到全局
A:globalThis是全局对象,aa挂在globalThis下面就成为全局对象
aa的属性和方法,就可以通过aa来访问,类似2.x的cc

Q:为什么要declare global,并将aa声明成module
A:declare global的作用是告诉ts,globalThis里有哪些属性和方法
aa只是一个对象,但declare global里将aa伪装成module,这样ts里可以把aa当module用

Q:为什么要用globalThis,而不是window
A:↓↓↓deepseek的答案↓↓↓

image

Q:为什么要用aa,是否可以换别的名字
A:可以换任意名字,也可以声明任意数量的全局module
但个人喜欢极简,就像2.x的cc一个足够了

Q:跟全局单例比,全局module的优势
A:1、挂在全局单例下的enum、类无法作为类型声明,这样会失去类型提示
例如:let pal: aa.Palette = labelNode.addComponent(aa.Palette);
如果aa只是个单例,那么aa.Palette无法作为pal的类型声明
2、全局单例的属性和方法必须写在一个文件中,想在其他文件中扩展很困难
全局module可以在任意文件中扩展,并在任意文件中访问里面的所有内容
3、全局单例需要导入,而全局module不需要,甚至不需要编写.d.ts文件
如果全局组件脚本放在远程bundle中,import会有异常,但是全局module无需import就不存在这个隐患

综上,全局module是最优解

Gitee地址:https://gitee.com/szrpf

EMail地址:27185709@qq.com

推荐链接:

 1、CocosCreator3.x框架——带翻页特效的场景切换

2、CocosCreator3.x实战案例——100行代码的追踪导弹Demo

3、CocosCreator3.x框架——多分辨率屏幕适配、横竖屏翻转

3、CocosCreator3.x框架——音频声音模块(无需导入、无需常驻节点)

4、2D图片实现3D透视效果(支持3.x、支持原生、可合批)

5、CocosCreator3.x图片和文字渐变色(支持3.x、支持原生、可合批)

6、CocosCreator3.x——拖尾(支持3.x、支持原生、可合批、高性能)

mi

http://www.dtcms.com/a/391697.html

相关文章:

  • 为什么要使用dynamic_cast
  • 随机过程笔记
  • OpenHarmony:NDK开发
  • Dify 从入门到精通(第 87/100 篇):Dify 的多模态模型可观测性(高级篇)
  • 5种获取JavaScript时间戳函数的方法
  • Redis 三种集群模式
  • 初识kotlin协程
  • 多线程——内存可见性问题和指令重排序问题(volatile详解)
  • Linux第十八讲:应用层协议Http
  • 【C++】速识map与set
  • 多层感知机(MLP)
  • Linux系统诊断——拷贝日志系统
  • python中 ​实例方法​(普通方法)和 ​类方法​ 的核心差异
  • Sping AI接入deepseek-本地部署大模型-第二期
  • 数据分析-数据指标体系搭建及应用
  • 计算机专业课《大数据技术》课程导览:开启数据智能时代
  • dumpsys battery 简介
  • 从 CNN 基础到 AlexNet:计算机视觉的破局之路
  • 苏州自动化工厂1台服务器如何5人并发SolidWorks设计
  • 固态硬盘数据恢复一般多少钱?费用分析+恢复教程
  • WebRTC 探秘:构建你自己的实时视频应用
  • 在Ubuntu中离线安装miniconda3
  • Mem0 + 百度智能云向量数据库:为AI打造持久化记忆
  • MySQL 数据归档的技术困境与 Databend 解决之道
  • 2025icpc网络赛第一场The 2025 ICPC Asia East Continent Online Contest (I)
  • docker中ngnix的路径配置
  • 什么是黑板架构风格?
  • Redis 三大核心模式(主从复制 / 哨兵 / 集群):完整部署与问题解析
  • Docker生产环境容器OOM问题定位:镜像内存泄漏还是主机资源不足?
  • AcWing385. GF和猫咪的玩具——Floyd算法