自学 Cocos JS 之 资源加载的那点事

boyanx7个月前技术教程15

这期的内容应该更偏向于程序。

个人认为Cocos Creator对资源的加载分为两种:静态加载和动态加载。

静态加载

所谓静态加载,说白了就是直接在Creator编辑器里拖拖拉拉,给各种节点托入图片,声音,预制体(prefab),动画,脚本等资源。

优点是:

  • 简单,可以直接产出
  • 所见即所得
  • 不需要管理资源的加载和释放,一切交给系统

缺点是:

  • 不能动态更改资源
  • 一旦把所有资源都预先挂在节点上,内存开销会增加
  • 流程会变的复杂,如果更改(添加,删除,修改)了一个资源就要在编辑器操作一下,复杂的流程会增加出错的概率,增加定位BUG的难度

上图中脚本ConfigMgr的作用是在游戏启动的时候将所有Json配置表一次性加载到游戏中,所有Scene通用。

动态加载

所谓动态加载,就是UI布局上只留一个节点(可以有资源也可以没有资源),通过代码在需要添加/更改资源的时候加载资源。

优点是:

  • 节省内存,在需要资源的时候加载对应的资源
  • 定位BUG简单,直接调试就能找到问题所在

缺点是:

  • 需要通过编码实现
  • 不仅要处理加载,还要处理卸载
  • 不能所见即所得

上图是动态加载龙骨的一个测试用例

  1. 新建场景,添加名为hero的空节点用来存放主角
  2. hero节点添加DragonBones组件
  3. 场景Canvas挂Player脚本
  4. 把hero节点拖到Player脚本中,赋值给PlayerDragonBone变量

上图就是Player.js脚本的内容

上图是浏览器中运行的效果图。

注意事项

需要动态加载的资源,

必须将资源放在assets/resources/下

必须将资源放在assets/resources/下

必须将资源放在assets/resources/下

重要的事情说三遍,我就是因为路径问题折腾了一天时间。

结语

对资源的加载一定要合理运用

就比如Player.js脚本,不应该把资源的名称写在代码里,应把资源名放在Json里,然后通过ConfigMgr.js查找对应的配置读取出来。静态读配置动态加载资源。

只有合理运用资源的静/动态加载才能实现收益的最大话。

标签: aplayer.js

相关文章

那些通用清除软件不曾注意的秘密

系统清理就像卫生检查前的大扫除,即使你使出吃奶的劲儿把一切可能的地方都打扫过,还会留下边边角角的遗漏。随着大家电脑安全意识的提高,越来越多的朋友开始关注自己的电脑安全,也知道安装360系列软件来"武装...

Node-Media-Server开源流行Nodejs流媒体服务器

简介Node-Media-Server一个 Node.js 实现的RTMP/HTTP/WebSocket/HLS/DASH流媒体服务器。开源github地址:https://github.com/il...

超好看 vue2.x 音频播放器组件Vue-APlayer

上篇文章给大家分享了视频播放器组件vue-aliplayer,这次给大家推荐一款音频插件VueAplayer。vue-aplayer 一个好看又好用的轻量级 vue.js 音乐播放器组件。清爽漂亮的U...

我的世界指令大全 minecraft常用命令汇总

在我的世界中玩家可以通过输入我的世界指令来改变游戏中的一些内容,这次搞趣网小编就为诸位我的世界玩家带来MC我的世界指令大全,常用命令汇总。希望诸位玩家喜欢这篇我的世界指令大全,minecraft常用命...

推荐 9 个 yyds 前后端分离项目

前后端分离是现在主流的架构设计模式,它初衷是用「单一职责」原则把代码质量提上去从而达到节省人力和减少沟通时的信息损失的目的。本文推荐九个前后端分离的开源项目,都是采用最流行的技术栈。本文推荐的开源项...

DPlayer - 免费开源、轻量简洁的 HTML5 视频播放器,支持弹幕

最近我在使用的一款简单容易集成的 web 视频播放组件,支持播放 B站弹幕。DPlayer 介绍DPlayer 是一款基于 JavaScript 的 HTML5 弹幕视频播放器,用于在 web 开发中...

发表评论    

◎欢迎参与讨论,请在这里发表您的看法、交流您的观点。