位置: 编程技术 - 正文

【cocos2d-js官方文档】二十五、Cocos2d-JS v3.0中的单例对象(cocos2dx-js)

编辑:rootadmin
为何将单例模式移除

推荐整理分享【cocos2d-js官方文档】二十五、Cocos2d-JS v3.0中的单例对象(cocos2dx-js),希望有所帮助,仅作参考,欢迎阅读内容。

文章相关热门搜索词:cocos creator js ts,cocos2d官网,cocos2d官网,cocos jsc,cocos2d-js教程,cocos js,cocos2dx-js,cocos2dx-js,内容如对您有帮助,希望把文章链接给更多的朋友!

在Cocos2d-JS v3.0之前,所有API几乎都是从Cocos2d-x中移植过来的,这是Cocos2d生态圈统一性的重要一环。可惜的是,这种统一性也在很大程度上限制了Cocos2d-html5的发展,有一些在C&#;&#;中非常有意义的涉及搬到Html5平台后却使得Cocos2d-html5变得臃肿。所以在3.0版中,我们决定将一些API改造成更适合JavaScript开发人员的API。这篇文档中将要展示的是单例类的改造。拿cc.SpriteFrameCache为例:

首先,这样的代码很长并且较难阅读。其次,不论cc.SpriteFrameCache的单例对象是否被创建,获取它都将产生函数调用。如果开发者们不够注意,使用它加载很多帧图像并且创建很多精灵又不缓存cc.SpriteFrameCache的单例对象,那么在javascript上必然造成一定程度的性能损失。最后,也是最重要的是,单例设计模式是为了保护类的单例对象,防止用户重复创建其对象。不过作为javascript开发者我们都知道,这没什么意义:

因此,我们决定Cocos2d-JS v3.0的首要任务就是提供一套更精简更符合JavaScript代码风&#;的API,这也是重构单例类的好机会。

重构列表

v3.0中部分被重构的单例类如下 :

这些单例类在3.0中变成了纯对象,类&#;下面的实现:

【cocos2d-js官方文档】二十五、Cocos2d-JS v3.0中的单例对象(cocos2dx-js)

另一方面,当我们需要继承和扩展时,作为类本身对于结构可能是很有裨益的,所以并不是所有的单例类都适合被重构为对象。但是我们又希望提供给开发者统一的API风&#;,所以我们保留了部分类的类实现并且直接提供了它的单例对象,以下这些类在3.0版中是这样实现的:

请留意所有单例对象都是以首字母小写来命名的,这是为了区分一个变量名代表的是类还是对象。

另外,cc.EGLView是最早在Cocos2d-iPhone中被定义的,所以它的名字来源于iOS中的OpenGL ES视图的名字。但是在Cocos2d-JS中,它仅仅是游戏的视图,可以是WebGL或OpenGL视图但同时也可能是Canvas视图,所以我们决定将它重命名为cc.view。

结果

重构之后,文档最初的例子在v3.0中将如下面代码所示:

我们衷心希望这种新的API风&#;可以让JavaScript开发者们开发起来更加得心应手。

转载自:

cocos2d CC_CALLBACK_0/1/2/3之间的区别 在使用回调函数时经常会遇到使用不同的回调函数,根据其定义#defineCC_CALLBACK_0(__selector__,__target__,...)std::bind(__selector__,__target__,##__VA_ARGS__)#defineCC_CALLBACK_

[置顶] cocos2dx3.1 texturepacker播放动画 先使用texturepacker把所需要使用的帧动画打包成一张图片和一个plist文件。使用大图的好处就是可以一次性载入图片,然后通过plist文件确定图片的位置,

cocos2d getPosition()取不到实际坐标问题 最近做感觉遇到的最多的就是坐标问题,感觉需要总结一下,不废话,直接上我的结论1、cocos2d,节点默认坐标(0,0),默认锚点(0.5,0.5),顶点节点

标签: cocos2dx-js

本文链接地址:https://www.jiuchutong.com/biancheng/369126.html 转载请保留说明!

上一篇:【cocos2d-js官方文档】二十四、如何在android平台上使用js直接调用Java方法(cocos creator js ts)

下一篇:cocos2d CC_CALLBACK_0/1/2/3之间的区别

  • 税收管辖权是什么的重要组成部分
  • 简易计税方法和免税该怎么选择
  • 银行短期存款利息怎么算
  • 个人购买股权的法律规定
  • 清算期间作为纳税年度
  • ktv发票可以入账吗
  • 收回已确认的坏账的应收账款
  • 建筑企业劳务费怎么做账
  • 厂家核销费用直接抵扣
  • 待处置资产损溢在什么科目
  • 出售商标使用权收入计入什么科目
  • 耕地占用税和契税什么时候交
  • 卷式发票有税率吗
  • 租车租赁费税率是多少
  • 电信话费可以开公司发票吗
  • 深圳税种核定需要申报吗
  • 小规模纳税人已经开了3%的票还可以享受1%的优惠吗
  • 建筑企业预收的工程款会计分录
  • 创建上市公司
  • 银行承兑汇票怎么取钱
  • 财产转移数据缴费怎么交
  • 公司收到境外付款的人民币
  • 职工赔偿金的账务处理
  • 收取拆迁补偿费会计分录
  • 苹果手机耳返功能怎么关闭
  • 存货对外销售会计分录
  • 误删的文件怎么撤回
  • 应付股利属于什么科目
  • 电脑时间同步不了解决方法
  • nyu数据集
  • 利用的拼音
  • 采购预算测算依据
  • 销售使用过的固定资产3%减按2%
  • vue-router.esm.js?a12b:2046 Uncaught (in promise) NavigationDuplicated: Avoided redundant navigation
  • 在Win2003(64位)中配置IIS6+PHP5.2.17+MySQL5.5的运行环境
  • vue二级菜单的隐藏与显示
  • golang 和 java
  • vue2 自定义 el-radio-button 的样式并设置默认值的方法
  • 以前年度损益调整是什么意思
  • 电子发票税率怎么改
  • 累计折旧当月增加当月减少
  • 年初未分配利润在借方表示什么
  • 专票没有抵扣联可以作废吗
  • 土地增值税是什么税种类型
  • 广告费的税额计入哪里
  • 当月购入固定资产当月出售了用交印花税吗
  • 进项税有余额在报表如何反应
  • 去银行提取备用金不是会计本人需要给谁打电话
  • 冲估价入库怎么冲成本
  • 母子公司之间无偿划转固定资产
  • 如何在科目余额表中查询给另一家公司付了多少钱
  • 过路费属于会计哪个科目
  • 企业的支出包括( )支出
  • 建账时必须输入的内容有哪些
  • 私营公司应付工资的规定
  • xp系统控制面板在哪里打开
  • win8局域网共享设置
  • windows xp怎么打开
  • vmware虚拟机步骤
  • 通用pe工具箱安装win7
  • win8.0升级win8.1
  • linux c命令
  • spybuddy.exe - spybuddy是什么进程
  • windows7的关闭方法
  • linux系统的
  • windows 10预览版
  • win8小键盘怎么打开
  • c#开发linux
  • js立即执行函数几种写法
  • java如何自定义函数
  • css中文名称
  • function函数的定义
  • pycharm官方教程
  • xp启动项 命令
  • JavaScript小技巧整理
  • jquery中追加到指定元素末尾
  • 湖北农信换手机登录不了
  • 车价36万保险一般多少钱
  • 收回闲置土地使用权案例
  • 海宁到许村公交车路线
  • 免责声明:网站部分图片文字素材来源于网络,如有侵权,请及时告知,我们会第一时间删除,谢谢! 邮箱:opceo@qq.com

    鄂ICP备2023003026号

    网站地图: 企业信息 工商信息 财税知识 网络常识 编程技术

    友情链接: 武汉网站建设