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

icp备案查询站长工具团员电子档案查询系统

icp备案查询站长工具,团员电子档案查询系统,wordpress页面的排序,网站开发如何适应手机现实要求为何将单例模式移除 在Cocos2d-JS v3.0之前。全部API差点儿都是从Cocos2d-x中移植过来的#xff0c;这是Cocos2d生态圈统一性的重要一环。可惜的是#xff0c;这样的统一性也在非常大程度上限制了Cocos2d-html5的发展#xff0c;有一些在C中非常有意义的涉及搬到Html5平台后… 为何将单例模式移除 在Cocos2d-JS v3.0之前。全部API差点儿都是从Cocos2d-x中移植过来的这是Cocos2d生态圈统一性的重要一环。可惜的是这样的统一性也在非常大程度上限制了Cocos2d-html5的发展有一些在C中非常有意义的涉及搬到Html5平台后却使得Cocos2d-html5变得臃肿。所以在3.0版中我们决定将一些API改造成更适合JavaScript开发者的API。这篇文档中将要展示的是单例类的改造。拿cc.SpriteFrameCache为例 // 在2.2.2版中。假设我们想通过cc.SpriteFrameCache来创建帧图像再通过帧图像来创建Sprite cc.SpriteFrameCache.getInstance().addSpriteFrames(s_boxs_plist); var boxFrame cc.SpriteFrameCache.getInstance().getSpriteFrame(box_normal_00.png); var sprite cc.Sprite.createWithSpriteFrame(boxFrame);首先这种代码非常长而且较难阅读。其次不论cc.SpriteFrameCache的单例对象是否被创建。获取它都将产生函数调用。假设开发人员们不够注意。使用它载入非常多帧图像而且创建非常多精灵又不缓存cc.SpriteFrameCache的单例对象那么在javascript上必定造成一定程度的性能损失。最后。也是最重要的是。单例设计模式是为了保护类的单例对象防止用户反复创建其对象。只是作为javascript开发人员我们都知道。这没什么意义 // 我们能够非常easy得获取cc.SpriteFrameCache的实际单例对象 cc.s_sharedSpriteFrameCache.addSpriteFrames(s_boxs_plist); // 假设我们想我们也能够创建还有一个精灵帧缓存对象 var myCache new cc.SpriteFrameCache();因此我们决定Cocos2d-JS v3.0的首要任务就是提供一套更精简更符合JavaScript代码风格的API这也是重构单例类的好机会。 重构列表 v3.0中部分被重构的单例类例如以下 : // In engine core cc.Configuration.getInstance() -- cc.configuration cc.ShaderCache.getInstance() -- cc.shaderCache cc.TextureCache.getInstance() -- cc.textureCache cc.AnimationCache.getInstance() -- cc.animationCache cc.SpriteFrameCache.getInstance() -- cc.spriteFrameCache cc.Screen.getInstance() -- cc.screen cc.TIFFReader.getInstance() -- cc.tiffReader cc.IMEDispatcher.getInstance() -- cc.imeDispatcher// In extension ccs.GUIReader.getInstance() -- ccs.guiReader ccs.SceneReader.getInstance() -- ccs.sceneReader ccs.DataReaderHelper -- ccs.dataReaderHelper ccs.SpriteFrameCacheHelper.getInstance() -- ccs.spriteFrameCacheHelper ccs.ArmatureDataManager.getInstance() -- ccs.armatureDataManager ccs.ActionManager.getInstance() -- ccs.actionManager ccs.TriggerMng.getInstance() -- ccs.triggerManager ccs.ObjectFactory.getInstance() -- ccs.objectFactory这些单例类在3.0中变成了纯对象。类似以下的实现 cc.screen {init: function () {//...},fullScreen: function() {//...},requestFullScreen: function (element, onFullScreenChange) {//...},exitFullScreen: function () {//...},autoFullScreen: function (element, onFullScreenChange) {//...} };还有一方面当我们须要继承和扩展时作为类本身对于结构可能是非常有裨益的所以并非全部的单例类都适合被重构为对象。可是我们又希望提供给开发人员统一的API风格所以我们保留了部分类的类实现而且直接提供了它的单例对象下面这些类在3.0版中是这样实现的 cc.AudioEngine.getInstance() -- cc.audioEngine cc.Director.getInstance() -- cc.director cc.EGLView.getInstance() -- cc.view cc.SAXParser.getInstance() -- cc.saxParser cc.PlistParser.getInstance() -- cc.plistParser请留意全部单例对象都是以首字母小写来命名的。这是为了区分一个变量名代表的是类还是对象。 另外。cc.EGLView是最早在Cocos2d-iPhone中被定义的所以它的名字来源于iOS中的OpenGL ES视图的名字。可是在Cocos2d-JS中。它不过游戏的视图能够是WebGL或OpenGL视图但同一时候也可能是Canvas视图所以我们决定将它重命名为cc.view。 结果 重构之后文档最初的样例在v3.0中将如以下代码所看到的 cc.spriteFrameCache.addSpriteFrames(s_boxs_plist); var boxFrame cc.spriteFrameCache.getSpriteFrame(box_normal_00.png); var sprite cc.Sprite.createWithSpriteFrame(boxFrame);我们衷心希望这样的新的API风格能够让JavaScript开发人员们开发起来更加得心应手。 转载自http://www.cocos2dx.net/post/260
http://www.yutouwan.com/news/212301/

相关文章:

  • 易企网络网站建设湖南 网站备案
  • 免费建网站 手机网站图片生成二维码在线制作
  • 商务网站建设平台企业网站建设与推广多少钱
  • 河西做网站的公司网站建设相关的博客有哪些
  • 权威做网站的公司微信扫码登记小程序
  • 汽修网站怎么做冯耀宗seo视频教程
  • 网站维护是不是很难做今天济南刚刚发生的新闻
  • 图片网站收录tradekey外贸平台官网
  • 建设银行北京分行网站邯郸建设局网站资质申报
  • 网站建设新闻中心呼和浩特网站推广公司
  • 免费cms建站系统有哪些学院网站设计模板
  • 福州seo推广优化杭州百度人工优化
  • 工信部网站 备案时间dtcms网站开发教程
  • 做电子商务网站免费的行情网站ifind是
  • 宁波市住房与城乡建设部网站如何零基础做网站
  • 网页设计公司建网站网站设计苏州公司网站建设找哪家
  • 网站建设晋icp备如何做亚马逊备案的网站
  • 腾讯空间个人认证 企业认证 网站认证哪种功能用途最齐全??游戏软件开发流程
  • 山东淄博网站建设微信公众号网站建设费
  • 注册的网站医疗网站咨询源码
  • 舟山建设网站公司微信小程序怎么关闭防沉迷
  • 十堰微网站建设多少钱网页设计模板html代码用户评论
  • 做票据业务的p2p网站北京网站建设公司分享网站改版注意事项
  • 内蒙古住房和城乡建设厅网站 工程建设管理把做的网站发布打万维网上
  • 企业网站seo方案最近军事新闻大事
  • 毕业设计 建设网站网站建设岗位风险防控
  • 南京专业网站制作免费下载代码的网站
  • 公司高端网站设计公司临海市建设规划局网站
  • 在线免费看电视剧的网站网站建设服务有哪些
  • 门户网站静态页面软件公司主要做哪些