cocos2d-js官方文档 cc.loader

前端之家收集整理的这篇文章主要介绍了cocos2d-js官方文档 cc.loader前端之家小编觉得挺不错的,现在分享给大家,也给大家做个参考。

概述

原来的cc.Loader被改造为一个单例cc.loader,采用了插件机制设计,让loader做更纯粹的事。

各种资源类型的loader可以在外部注册进来,而不是直接将所有的代码杂揉在cc.Loader中,更好的方便管理以及用户自定义loader的创建。

cc.loader中包含了一些网络资源获取的基本api,例如加载js、加载image等。

API描述

(注:以下描述中,全路径的意思为 "资源的根路径" + "资源路径", 例如设置图片资源根路径(cc.loader.resPath)为"res",图片资源路径为"a.png", 那么全路径为"res/a.png",非全路径为"a.png"。)

resPath

资源的根路径(音频资源除外)。

audioPath

音频资源的根路径。

getXMLHttpRequest

获取XMLHttpRequest对象。

loadJs

加载js文件

  1. 参数:
  2. url 资源路径(注意,必须是全路径)
  3. cb 回调函数
  4.  
  5. 返回值:
  1. cc.loader.loadJs("src",[
  2. "a.js","b.js"
  3. ],function(err){
  4. if(err) return console.log("load Failed");
  5. //success
  6. });
  1. cc.loader.loadJs([
  2. "src/a.js","src/b.js"
  3. ],sans-serif; font-size:16px; line-height:25.6000003814697px">
  4. 用法3:
  5. cc.loader.loadJs("src/a.js",function(err){
  6.     if(err) return console.log("load Failed");
  7.     //success
  8. });
  9. loadJsWithImg
  10. 用法loadJs,只是在加载js文件的时候会显示一个loading的图片而已。

  11. loadTxt
  12. 加载文本资源。

  13. 参数:
  14. url     资源路径(注意,必须是全路径)
  15. cb      回调函数
  16. 返回值: 无
  17. 用法

  18. cc.loader.loadTxt("res/a.txt",function(err,data){
  19.     if(err) return console.log("load Failed");
  20.     //success
  21. });
  22. loadImg
  23. 加载图片资源。

  24. 参数:
  25. url         资源路径(注意,必须是全路径)
  26. option      选项,目前结构如:`{isCrossOrigin : true}`,`isCrossOrigin`默认为`true`(可选)
  27. cb          回调函数
  28. 返回值: Image对象。
  29. loadBinary
  30. 加载二进制文件(异步)。

  31. 参数:
  32. url         资源路径(注意,必须是全路径)
  33. cb          回调函数
  34. 返回值: 二进制数据。
  35. loadBinarySync
  36. 加载二进制文件(同步,不推荐使用)。

  37.  getUrl 
  38. 获取到资源全路径。

  39. 参数:
  40. basePath    资源的根路径
  41. url         资源路径
  42. 返回值:资源全路径。
  43. cc.loader.getUrl("res","a.png");//-->"res/a.png"

  44. cc.loader.getUrl("a.png");//(set cc.loader.resPath = "res")--->"res/a.png"。

  45. load
  46. 加载资源的入口api。相当于原来的cc.Loader.preload

  47. 参数:
  48. res         资源列表,可以是一个数组或者一个string或者一个包含`src`属性的对象。
  49. option      选项(可选),有以下属性
  50.             cb              回调函数
  51.             cbTarget        回调函数的执行者
  52.             trigger         触发器(函数
  53.             triggerTarget   触发器的执行者
  54. cb          回调函数(可选)
  55. var res = ["res/a.png","res/a.plist","audio/b.mp3"];

  56. var testTarget = {

  57. name : "the name is testTarget",trigger : function(){...},cb : function(err){...}

  58. };

  59. var option = {

  60. trigger : testTarget.trigger,triggerTarget : testTarget,cbTarget : testTarget

  61. }

  62. //用法1:

  63. cc.loader.load(res,option,function(err){

  64. if(err) return console.log("load Failed");

  65. console.log(this.name);//the name is testTarget

  66. });

  67. //用法2:

  68. cc.loader.load(res,function(err){

  69. if(err) return console.log("load Failed");

  70. });

  71. //用法3:

  72. option.cb = testTarget.cb;

  73. cc.loader.load(res,option);

  74. //用法4:

  75. cc.loader.load(res);

loadAliases

加载plist配置文件从而获得别名。

  1. 参数:
  2. url 配置文件url
  3. 配置文件的格式如下:
  4. <?xml version="1.0" encoding="UTF-8"?>
  5. <!DOCTYPE plist PUBLIC "-//Apple//DTD PLIST 1.0//EN" "http://www.apple.com/DTDs/PropertyList-1.0.dtd">
  6. <plist version="1.0">
  7. <dict>
  8. <key>Metadata</key>
  9. <dict>
  10. <key>version</key>
  11. <integer>1</integer>
  12. </dict>
  13. <key>filenames</key>
  14. <dict>
  15. <key>grossini.bmp</key>
  16. <string>res/Images/grossini.png</string>
  17. </dict>
  18. </dict>
  19. </plist>
  20.  
  21. cb 回调
  22.  
  23. 用法
  24.  
  25. cc.loader.loadAliases("res/lookup-html5.plist",function(){
  26. var sprite = cc.Sprite.create("grossini.bmp");
  27. self.addChild( sprite );
  28. sprite.x = winSize.width/2;
  29. sprite.y = winSize.height/2;
  30. });
register

注册loader。

  1. 参数:
  2. extNames 后缀名(String数组或者String
  3. loader loader对象,
  4. 必须包含一个名为"load"方法
  5. 方法将接受四个个参数:realUrl,url,res,cb,分别表示资源全路径、原来的路径、res对象(就是cc.loader.load方法的资源列表的项),回调函数
  6. 可能包含一个名为"getBasePath"方法,该方法返回该类型资源的根路径,不设置该方法默认为cc.loader.resPath
  7.  
  8. 返回值:无

cc.txtLoader = { load : function(realUrl,cb){ cc.loader.loadTxt(realUrl,cb); } } cc.loader.register(["txt","xml","tmx","tsx"],cc.txtLoader);

getRes

获取资源缓存数据。

  1. 参数:
  2. url 资源路径(非全路径)
  3.  
  4. 返回值: 资源数据

var img = cc.loader.getRes("a.png");

release

释放资源缓存数据。

  1. 参数:
  2. url 资源路径(非全路径)
  3.  
  4. 返回值:

cc.loader.release("a.png");

releaseAlll

释放所有的资源缓存数据

  1. 参数:
  2.  
  3. 返回值:

cc.loader.releaseAll();

注册loader插件

引擎自带loader写在CCLoaders.js中。实现方式也很简单,相信看下源码就懂了,这里就不多说了。

资源配置格式

这次cc.loader的改造,也废除了v2版本中一直让人诟病的资源列表的配置。

v2:

  1. var resources = [
  2. {src:"res/a.png"},{fontName:"Marker Felt",src:[{src:"res/cocosgui/Marker Felt.ttf",type:"truetype"}]},{
  3. fontName:"Schwarzwald Regular",src:[
  4. {src:"res/fonts/Schwarzwald_Regular.eot",type:"embedded-opentype"},{src:"res/fonts/Schwarzwald Regular.ttf",type:"truetype"}
  5. ]
  6. }
  7. ]

v3:

  1. var resources = [
  2. "res/a.png","res/cocosgui/Marker Felt.ttf",{
  3. type:"font",name:"Schwarzwald Regular",srcs:["res/fonts/Schwarzwald_Regular.eot","res/fonts/Schwarzwald Regular.ttf"]
  4. }
  5. ]

在v3中,通常情况下只要配路径就行,这样简化了配置,同时减少了对象的频繁创建。 如果有特殊需求,例如font,就使用{type:"resType",name:"resName"}数据结构自定义自己的资源加载配置方案。type字段指定注册loader插件name加上"."再加上type来作为缓存资源的key值。

注意,v2版本中的资源列表配置在v3中是不支持的。


转载:http://www.douapp.com/post/2452

猜你在找的Cocos2d-x相关文章