cocos creator学习9——cc.loader使用
2018-03-21 14:12
369 查看
cc.loader
存在3个默认Pipeline:管道名 | 功能 |
---|---|
assetLoader | 用于加载资源,默认为第一个管道,用于识别资源类型,并确定如何下载它,还有释放资源 |
downloader | 用于下载资源,默认为第二个管道, 它用于下载具有多个处理程序的文件:纯文本,图像,脚本,音频,字体,uuid。 可以使用addDownloadHandlers添加自己的下载功能(自定义下载) |
loader | 默认情况下为第三个管道。 它用于加载JSON,图像,plist,fnt,uuid类资源。 您可以使用addLoadHandlers添加您自己的下载功能 |
加载都是一个异步的过程
在cocos creator中使用代码加载资源必须要求资源在
assets/resources/文件夹下
loader.loadRes()使用
loadRes()有4个参数
参数列表 | 对应功能 |
---|---|
url | 资源文件的url地址 |
type | 如果写上这个参数就会只加载该类型的资源 |
progressCallback(completedCount,totalCount,item) | 当进程更改时调用的回调函数 |
completeCallback(err,ret) | 当资源加载时调用的回调函数 |
代码实现本地加载资源
start () { this.local_load();//调用加载函数 }, local_load:function(){ cc.loader.loadRes("Super",function(err,ret){ if(err){ cc.log(err); return; } else{ cc.log(ret); this.Audio.clip = ret; this.Audio.play(); cc.log("正在播放?"+this.Audio.isPlaying); //检测是否在播放 } }.bind(this)); cc.loader.loadRes("block",cc.SpriteFrame,function(err,ret){ if(err){ cc.log(err); return; } cc.log("ret = "+ret); this.SpriteRes.spriteFrame = ret; //等效于this.SpriteRes.spriteFrame = cc.load.getRes("block",cc.SpriteFrame); //不过getRes也可以在其他场景继续使用 }.bind(this)); },
运行结果
打印出true结果就代表声音正在播放了,并且图片加载进去了
远程加载
如果需要从远程的服务器中获取资源,此时需要cc.load.load(url,callback)与本地加载资源API类似
只不过有一点不同,我们可以传入一个表{url:xxxx,type:xxx(如:MP3,png)},creator就可以识别出文件类型
cc.loader.load({url: 'http://example.com/getImageREST?file=a.png', type: 'png'}, function (err, tex) { cc.log('Should load a texture from RESTful API by specify the type: ' + (tex instanceof cc.Texture2D)); });
资源的释放
场景中的属性检查器上有一个自动释放资源,但是它无法清理代码加载的资源如果需要自动清理,可以使用
setAutoRelease(url,autoRelease),强制在切换场景时保留或者释放指定资源
手动释放资源
加载资源类型 | 对应释放 |
---|---|
loadRes()本地加载资源 | 使用releaseRes(url,type)释放资源 |
load()远程加载 | 使用release(asset)释放资源 |
releaseAsset(asset)通过资源对象自身来释放资源。 |
相关文章推荐
- 【Cocos2d-X开发学习笔记】第19期:动作管理类(CCActionManager)的使用
- cocos2d-x学习日志(7) --CCScrollView和CCTableView的使用
- Universal-Image-Loader学习系列(一),下载及简单的使用
- Universal-Image-Loader学习系列(二),ImageLoaderConfiguration的使用
- qml学习----------使用Loader来加载组件和处理按键消息
- Android开源框架Universal-Image-Loader学习使用1
- 学习笔记之cocos2d-x2.1.1实现读取.plist文件(使用数组CCArray)
- Cocos Creator 使用 cc.Class 声明类型(摘自官方文档)
- andorid 学习笔记 UniversalImageLoader的使用
- 【ImageLoader】Universal-Image-Loader学习系列(二),ImageLoaderConfiguration的使用
- webpack前端构建工具学习总结(二)之loader的使用
- webpack入门学习3-loader的使用
- 学习使用EasyUI之easyloader加载
- qml学习-------------使用Loader动态创建和删除组件
- Oracle Sql Loader的学习使用
- Cocos Creator使用 cc.Class 声明类型(官方文档摘录)
- cocos2d-x学习日志(7) --CCScrollView和CCTableView的使用
- 【ImageLoader】Universal-Image-Loader学习系列(一),下载及简单的使用
- 【Cocos2d-X开发学习笔记】第19期:动作管理类(CCActionManager)的使用
- Cocos2dx 学习笔记28 使用CCCamera注意事项