位置: 编程技术 - 正文

【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之间的区别

  • 全国增值税专用发票计算机稽核网络系统工程
  • 劳务费增值税税率13%
  • 中级考试报了三门,只考两门行吗
  • 房地产开发企业销售自行开发的房地产项目
  • 个人收到利息要交增值税吗为什么
  • 子公司注销母公司合并报表处理
  • 餐饮个体工商户交税标准
  • 土地使用权入账价值包括哪些
  • 农产品收购发票可以跨区域开吗
  • 高危职业人身意外险
  • 跨年的发票作废账务如何处理
  • 购买原材料产生的运输费计入什么科目
  • 打官司失败了要赔偿原告诉讼费吗?
  • 专门从事研发的企业研发费用可以加计扣除吗
  • 被合并企业评估什么意思
  • 开具的增值税发票丢失最新处理办法
  • 个体户交地税
  • 增值税发票查验平台怎么查询发票
  • 行政事业单位国有资产处置收入包括
  • 火车票抵扣进项税额怎么申报
  • 租赁的厂房改造可以费用化吗
  • 个税申报系统的备份保留几份数据
  • 城镇土地使用税税率
  • 多收不用退的货物怎么办
  • u盘显示0字节修改不了
  • PHP:oci_field_precision()的用法_Oracle函数
  • 收入支出如何结转
  • codewriter怎么运行
  • 阿里云jar包
  • web前端入门教程
  • 购车的进项税怎么抵扣
  • asreg命令什么意思
  • 普通发票不满8项怎么开明细
  • 向股东免息借款怎么做账
  • 扣非净利润为什么比净利润高
  • 发票金额大于付款金额怎么写说明
  • 个体工商户需要给员工交社保吗
  • 其他权益工具账面价值
  • 定期定额户增值税起征点
  • 不动产计税金额
  • 收到的发票未抵税怎么办
  • 上个月的发票未开具
  • 国家土地补偿款
  • 建筑工程老项目开票截止日期
  • 支付货款订金入什么科目
  • 企业发生坏账损失时,在当期确认坏账损失
  • 法人投资属于什么会计科目
  • 新成立公司申报个税流程
  • 收到了对方的作业怎么办
  • 被投资企业注销,确认投资损失需
  • 在建工程的人工费会计分录
  • 会计里面权益是什么
  • 加计扣除怎么申报
  • 明细账的建账
  • 财政性银行的资金来源是什么
  • Win7 64位 mysql 5.7下载安装常见问题小结
  • MySQL 5.7 mysql command line client 使用命令详解
  • Linux平台mysql开启远程登录
  • 微软windows 10
  • 怎么用uefi装win7
  • 笔记本摄像头摄像
  • iis安装失败找不到源文件
  • mac将多张图片保存到相册
  • mx1014
  • linux ii
  • 分享一下什么
  • 批处理图像
  • node 创建文件夹
  • go语言websocket
  • xml-js
  • html购物网站
  • android网络框架okhttp
  • jquery使用Cookie和JSON记录用户最近浏览历史
  • javascript 对象
  • 税务局县区级及以下
  • 本市可以跨县高考报名吗
  • 已经开票的房子还能退吗
  • 公寓限购是好事吗
  • 如何用微信进行社保认证
  • 税务申报如何网上申报
  • 免责声明:网站部分图片文字素材来源于网络,如有侵权,请及时告知,我们会第一时间删除,谢谢! 邮箱:opceo@qq.com

    鄂ICP备2023003026号

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

    友情链接: 武汉网站建设