位置: 编程技术 - 正文

【cocos2d-js官方文档】十八、Cocos2d-js v3.0的对象构造和类继承(cocos creator js ts)

编辑:rootadmin

推荐整理分享【cocos2d-js官方文档】十八、Cocos2d-js v3.0的对象构造和类继承(cocos creator js ts),希望有所帮助,仅作参考,欢迎阅读内容。

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

在Cocos2d-JS中,对象的构造方式和Cocos2d-x一样,使用各个类的create函数来构造。在Cocos2d-JS v3.0我们还将为你带来一种传统的方式,即使用new操作符。另外,在v3.0 alpha1版本中,因为我们还没有找到较好的解决办法,所以不能继承JSB中的引擎类。但是在v3.0 alpha2中,这个问题已经解决了。由于使用new操作符,编写继承代码也更加容易了。

在这篇文档中,我们将会介绍如何使用它们,以及简要的实现原理。

1. 弃用的create函数

由于Cocos2d-JS v3.0支持了更简单方便的new构造方式,所有create以及createWithXXX函数都被弃用了,调用它们将会收到警告消息。new构造方式支持所有类型的旧create函数的参数。

开发者有两种方式构造一个Sprite对象:统一的create函数和new操作符调用构造函数,它们接受相同的参数。在html5和jsb中都支持这2种方式,但是他们的实现原理大不相同。

2. 构造函数

我们现在可以直接使用new操作符来调用类的构造函数了。例如,开发者们应该使用new cc.Sprite(...)来创建一个cc.Sprite对象,在html5和jsb中都支持这种方式,但是他们的实现原理大不相同:

在html5引擎中,我们重构了所有引擎类的ctor函数,使它们可以接受和create函数相同的参数。

在JSB中如果使用new操作符来调用cc.Sprite的构造函数,我们实际上在C&#;&#;层会调用js_cocos2dx_Sprite_constructor函数。在这个C&#;&#;函数中,会为这个精灵对象分配内存,并把它添加到自动回收池,然后调用js层的_ctor函数来完成初始化。在_ctor函数中会根据参数类型和数量调用不同的init函数,这些init函数也是C&#;&#;函数的绑定:

JavascriptJSBCocos2d-xcc.Sprite.initWithSpriteFrameNamejs_cocos2dx_Sprite_initWithSpriteFrameNamecocos2d::Sprite::initWithSpriteFrameNamecc.Sprite.initWithSpriteFramejs_cocos2dx_Sprite_initWithSpriteFramecocos2d::Sprite::initWithSpriteFramecc.Sprite.initWithFilejs_cocos2dx_Sprite_initWithFilecocos2d::Sprite::initWithFilecc.Sprite.initWithTexturejs_cocos2dx_Sprite_initWithTexturecocos2d::Sprite::initWithTexture【cocos2d-js官方文档】十八、Cocos2d-js v3.0的对象构造和类继承(cocos creator js ts)

这个过程的顺序图如下:

3. 继承

在Cocos2d-html5 2.x中,当我们继承一个类时,我们需要在create函数中使用不同的init函数,例如:

在Cocos2d-JS中,我们只需要编写带有正确参数的ctor函数,并调用_super函数就可以了。

在html5引擎中这很好理解,因为我们支持使用new操作符。

但在JSB中这有点复杂,在_super函数中我们会调用Sprite的C&#;&#;层ctor函数:js_cocos2dx_Sprite_ctor,这个函数不仅实例化精灵对象,也会调用cc.Sprite.prototype._ctor并传递参数。_ctor函数对精灵类真正的初始化函数做了封装,会根据传递的参数来调用不同的初始化函数,这样我们最终就完成了自定义ctor函数的执行。

这个过程的顺序图如下:

转载:

【cocos2d-js官方文档】二十一、v3相对于v2版本的api变动 CCAudio.jsSimpleAudioEngine.js改名为CCAudio.js。AudioEngine中删除了以下几个方法:preloadMusicpreloadEffectisFormatSupportedpreloadSoundcc.AudioEngine.end被移到了实例中,而不

【cocos2d-js官方文档】二十、moduleConfig.json 概述该配置文件相当于v2版本中的jsloader.js。改造的目的是为了使得配置纯粹化,同时也能比较好的支持cocos-console、cocos-utils甚至是用户自定义脚本工具

【cocos2d-js官方文档】十九、Cocos2d-JS单文件引擎使用指引 这篇指引主要介绍如何使用从在线下载工具下载下来的Cocos2d-JS的单文件引擎。你有可能下载了下面三个版本中的一个:Cocos2d-JSFullVersion:完整版引擎包含

标签: cocos creator js ts

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

上一篇:【cocos2d-js官方文档】十八、Cocos2d-JS v3.0中的属性风格API(cocos2d官网)

下一篇:【cocos2d-js官方文档】二十一、v3相对于v2版本的api变动(cocos2d官网)

  • 外贸企业申报退税流程
  • 个人所得税如何计算
  • 私车公用如何处理
  • 纯外贸出口企业出售固定
  • 中级报名的报考条件要求
  • 加工承揽属于劳务关系吗
  • 增值税加计扣除账务处理
  • 小规模季报财务报表怎么填写
  • 其他应收款收到发票怎么写会计分录
  • 小规模纳税人普票和专票怎么交税
  • 增值税电子发票能抵税吗
  • 军队票据可作税前扣除凭证吗
  • 个人所得税补缴不补会怎样
  • 建筑图纸设计费包括晒图费吗
  • 企业外购的房屋建筑物是否属于非房地产企业
  • 新税法下广告费计税依据
  • 增值税普通发票怎么开
  • 高新技术企业必须要有研发费用吗
  • 增值税发票抵扣进项税什么意思
  • 什么情况下的发烧才会全身酸痛呢
  • 残保金退回属于政府补助吗
  • 初级备考日记
  • 小规模保安公司收取服务费时如何开票
  • 隔月的发票能作废吗
  • 交易性金融资产属于什么类
  • 合同负债和预收账款的关系
  • 报销伙食费的会计分录
  • 一个集团的分公司干过活再去另一个分公司会被发现吗
  • 微软 Windows x64 仿真正式推出,只支持 Win11 ARM
  • 登记会计账簿的注意事项
  • lnmgr.exe是什么
  • php实现搜索的方式
  • 废品损失科目的期末余额在借方表示什么?
  • 前端项目中遇到的问题,如何解决
  • 个体户何去何从
  • 猿人知乎
  • 退车船税分录
  • 增值税发票如何认证抵扣
  • 命令行 压缩
  • 房产税缴纳时间点
  • 进项税加计抵减是什么意思
  • 中华人民共和国禁毒法第十三条规定
  • 免税收入包括
  • 独资子公司与母公司
  • 外贸企业出口退税申报流程
  • python中默认值参数
  • 成本会计制造费用核算的内容
  • 在建工程转入固定资产怎么做
  • 揭秘如何投屏纽约时代广场
  • mysql 查询平均值
  • 小企业会计准则适用于哪些企业
  • 进项3个点销项13个点是需要交10个点的税吗
  • 不动产租赁如何避税
  • 汇算清缴要退税1750元,不想退要调平怎么调?
  • 记账凭证如何进行记账
  • 交付使用资产是固定资产吗
  • 高新技术企业支付特许权使用费
  • 在建工程发生的运费计入什么科目
  • 应交税费减免税额在借方还是贷方
  • 个人公积金计入什么科目
  • 补缴企业所得税
  • win7系统权限设置
  • linux增加命令
  • solaris syslog
  • windows超级管理员默认密码
  • 怎么设置虚拟硬盘储存路径
  • win8.1和win10哪个好用
  • win7如何显示桌面
  • windows7 sp1升级包
  • linux bzz
  • cocos2dx quicxk 3.3 导入Json文件布局 UI
  • unity3ds
  • javascript初级教程
  • android listview数据动态加载
  • jquery给下拉框添加选项
  • 电子专票操作视频
  • 武汉税务证怎么网上申请
  • 网上税务局网址
  • 企业年度申报怎么修改
  • 城市土地使用税计税依据
  • 免责声明:网站部分图片文字素材来源于网络,如有侵权,请及时告知,我们会第一时间删除,谢谢! 邮箱:opceo@qq.com

    鄂ICP备2023003026号

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

    友情链接: 武汉网站建设