当前位置: 首页 > 编程日记 > 正文

【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文件。

参数:
url     资源路径(注意,必须是全路径)
cb      回调函数返回值: 无
  • 用法1:
cc.loader.loadJs("src", ["a.js", "b.js"
], function(err){if(err) return console.log("load failed");//success
});
  • 用法2:
cc.loader.loadJs(["src/a.js", "src/b.js"
], function(err){if(err) return console.log("load failed");//success
});
  • 用法3:
cc.loader.loadJs("src/a.js", function(err){if(err) return console.log("load failed");//success
});
loadJsWithImg

用法同loadJs,只是在加载js文件的时候会显示一个loading的图片而已。

loadTxt

加载文本资源。

参数:
url     资源路径(注意,必须是全路径)
cb      回调函数返回值: 无

用法:

cc.loader.loadTxt("res/a.txt", function(err, data){if(err) return console.log("load failed");//success
});
loadImg

加载图片资源。

参数:
url         资源路径(注意,必须是全路径)
option      选项,目前结构如:`{isCrossOrigin : true}`,`isCrossOrigin`默认为`true`(可选)
cb          回调函数返回值: Image对象。
loadBinary

加载二进制文件(异步)。

参数:
url         资源路径(注意,必须是全路径)
cb          回调函数返回值: 二进制数据。
loadBinarySync

加载二进制文件(同步,不推荐使用)。

参数:
url         资源路径(注意,必须是全路径)
cb          回调函数返回值: 二进制数据。
getUrl

获取到资源全路径。

参数:
basePath    资源的根路径
url         资源路径返回值:资源全路径。

用法:

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

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

参数:
res         资源列表,可以是一个数组或者一个string或者一个包含`src`属性的对象。
option      选项(可选),有以下属性:cb              回调函数cbTarget        回调函数的执行者trigger         触发器(函数)triggerTarget   触发器的执行者
cb          回调函数(可选)

用法:

var res = ["res/a.png", "res/a.plist", "audio/b.mp3"];
var testTarget = {name : "the name is testTarget",trigger : function(){...},cb : function(err){...}
};
var option = {trigger : testTarget.trigger,triggerTarget : testTarget,cbTarget : testTarget
}
//用法1:
cc.loader.load(res, option, function(err){if(err) return console.log("load failed");console.log(this.name);//the name is testTarget
});//用法2:
cc.loader.load(res, function(err){if(err) return console.log("load failed");
});//用法3:
option.cb = testTarget.cb;
cc.loader.load(res, option);//用法4:
cc.loader.load(res);
loadAliases

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

参数:
url             配置文件url配置文件的格式如下:<?xml version="1.0" encoding="UTF-8"?><!DOCTYPE plist PUBLIC "-//Apple//DTD PLIST 1.0//EN" "http://www.apple.com/DTDs/PropertyList-1.0.dtd"><plist version="1.0"><dict><key>metadata</key><dict><key>version</key><integer>1</integer></dict><key>filenames</key><dict><key>grossini.bmp</key><string>res/Images/grossini.png</string></dict></dict></plist>cb              回调用法:cc.loader.loadAliases("res/lookup-html5.plist", function(){var sprite = cc.Sprite.create("grossini.bmp");self.addChild( sprite );sprite.x = winSize.width/2;sprite.y = winSize.height/2;
});
register

注册loader。

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

用法:

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

获取资源缓存数据。

参数:
url         资源路径(非全路径)返回值:     资源数据

用法:

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

释放资源缓存数据。

参数:
url         资源路径(非全路径)返回值:     无

用法:

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

释放所有的资源缓存数据

参数:         无返回值:       无

用法:

cc.loader.releaseAll();

注册loader插件

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

资源配置格式

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

v2:

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

v3:

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

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

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

转载于:https://www.cnblogs.com/Siegel/p/5928489.html

相关文章:

更换VC后DDC提示证书不可用

问题描述&#xff1a;客户环境由Windows VC更换成Linux VC后&#xff0c;DDC提示证书不可用问题原因&#xff1a;因为VC更换后&#xff0c;存储在DDC数据库HostingUnitServiceSchema.HypervisorConnectionSSLThumbprint表中证书指纹信息和新得VC证书指纹信息不匹配。解决方法&a…

尺度空间理论与图像金字塔

我们之所以决定使用卷积后的特征是因为图像具有一种“静态性”的属性。也就是说使用卷积就是为了提取显著特征&#xff0c;减少特征维数&#xff0c;减少计算量。 在对图像进行卷积操作后的只管现象&#xff1a;图像变得模糊了&#xff0c;可是我们依然能够分辨出是什么&#x…

【ACM】 multiset 的 一些应用

一、The kth great number 题目链接&#xff1a;https://vjudge.net/problem/HDU-4006 用set写超时 &#xff08;在VJ里&#xff0c;用C显示Compilation Error&#xff0c;选择G&#xff0c;则是TLE&#xff09; #include <iostream> #include <set> #include &…

apache2.2 做后端,增加真实ip到日志中

apache2.2使用mod_remoteip模块 一.安装 wget https://github.com/ttkzw/mod_remoteip-httpd22/raw/master/mod_remoteip.c/usr/local/apache/bin/apxs -i -c -n mod_remoteip.so mod_remoteip.c 二.添加Apache配置vi /usr/local/apache/conf/httpd.confInclude conf/extra/htt…

高可用方案系统架构

2019独角兽企业重金招聘Python工程师标准>>> 高可用方案 系统架构 转载于:https://my.oschina.net/qiongtaoli/blog/3007587

OpenCV3.2.0+VS2017在window10开发环境配置记录

本机环境&#xff1a;win10 64位 OpenCV3.2.0 Visual Studio 2017 最后结果&#xff0c;亲测可用OpenCV官方下载地址&#xff1a; http://opencv.org/releases.html#本人选择opencv3.2.0基于Windows平台。读者根据自己需要选择合适版本及平台下载。 选择window版本的opencv下载…

C++vector迭代器失效的问题

转载:http://blog.csdn.net/olanmomo/article/details/38420907 转载:http://blog.csdn.net/stpeace/article/details/46507451 转载:http://www.cnblogs.com/xkfz007/articles/2509433.html 转载:http://www.cnblogs.com/BeyondAnyTime/archive/2012/08/13/2636375.html 有这样…

【HDU】1251统计难题 (字典树:二维数组,结构体数组,链表,map)

使用二维数组或者结构体数组都可以&#xff0c;但是在计数的时候有一点点小区别 一、结构体数组 #include <cstdio> #include <cstring> #include <algorithm> #include <iostream> #include <string> typedef long long ll; using namespace…

Jmeter干货 不常用却极其有用的几个地方

1. Jmeter测试计划下Run Thread Groups consecutively 表示序列化执行测试计划下所有线程组中的各个请求 如下图配置&#xff0c;新建的测试计划中&#xff0c;不默认勾选此项&#xff0c; 而享用Jmeter做接口自动化测试的同学们&#xff0c;会发现一个问题是&#xff0c;可能多…

图像滤波总结(面试经验总结)

目录 图像平滑处理&#xff0c;6种滤波总结的综合示例 【盒式滤波、均值滤波、高斯滤波、中值滤波、双边滤波导向滤波】 1-图像滤波 2-代码演示 3-显示结果 4-程序说明 5 角点检测&#xff08;Harris,Fast,surf&#xff09; 图像平滑处理&#xff0c;6种滤波总结的综合示…

【小贴士】DEV 多行注释

多行注释 Ctrl / 取消多行注释 Ctrl &#xff0c;

JSP+Servlet基础一

2019独角兽企业重金招聘Python工程师标准>>> JSP中的指令: 格式&#xff1a;<%指令的名称(page&#xff0c;taglib&#xff0c;include...) 属性属性值%> 指令中的page&#xff1a;用于整个页面&#xff0c;定义与页面相关的属性。page属性一共有13个。 1、常…

Chameleon跨端框架——壹个理想主义团队的开源作品

文章较长&#xff0c;信息量很大&#xff0c;请耐心阅读&#xff0c;必然有收获。下面正文开始~背景解决方案原理久经考验生产应用举例易用性好多态协议学习成本低渐进式接入业内对比后期规划理想主义历经近20个月打磨&#xff0c;滴滴跨端方案chameleon终于开源了github.com/d…

尺度空间理论与图像金字塔(二)

SIFT简介 整理一下方便阅读&#xff0c;作者写的东西摘自论文&#xff0c;在此感谢xiaowei等的贡献 DoG尺度空间构造&#xff08;Scale-space extrema detection&#xff09;http://blog.csdn.net/xiaowei_cqu/article/details/8067881关键点搜索与定位&#xff08;Keypoint l…

仿桌面通知pnotify插件

在做网站的时候&#xff0c;alert弹出框是非常常见的情形。但是&#xff0c;有些情况下&#xff0c;弹框对用户来说是并不友好的。调研了几个其他的提示插件了&#xff0c;发现pnotify比较好用&#xff0c;可配置性也高。 使用示例&#xff1a; <!DOCTYPE html> <html…

【HDU】1305 Immediate Decodability(字典树:结构体数组,二维数组,链表/指针)

一、用的二维数组 #include <iostream> #include <cstring> #include <algorithm> using namespace std;const int maxn 100; int tr[maxn][2]; int mk[maxn]; int tot;void insert(string s) {int u 0;for(int i0;i<s.length();i){int x s[i]-0;if(tr…

Hyperledger Grid:一个用于分布式供应链解决方案的框架

Hyperledger在最近的一篇博文中发布了一个名为Hyperledger Grid的新项目。Grid是一个用于集成分布式账本技术&#xff08;DLT&#xff09;解决方案与供应链行业企业业务系统的框架。该项目提供了一个参考架构、通用数据模型和智能合约&#xff0c;所有这些都是基于开放标准和行…

尺度不变特征变换匹配算法详解

尺度不变特征变换匹配算法详解Scale Invariant Feature Transform(SIFT)Just For Fun对于初学者&#xff0c;从David G.Lowe的论文到实现&#xff0c;有许多鸿沟&#xff0c;本文帮你跨越。1、SIFT综述 尺度不变特征转换(Scale-invariant feature transform或SIFT)是一种电脑视…

【POJ】2503 Babelfish(字典树,map,指针)

一、map 输入时候的格式有点难想&#xff0c;还有一种想法是用gets读取&#xff0c;然后用sscanf分开&#xff0c;分别存到两个数组中去&#xff0c;再加入map中&#xff0c;但是这一种方法目前还没有实现。。 #include <iostream> #include <cstring> #include …

ndk-build: CreateProcess error=193

为什么80%的码农都做不了架构师&#xff1f;>>> 问题&#xff1a;ndk-build": CreateProcess error193 解决&#xff1a;该问题表明&#xff0c;调用了非windows程序&#xff0c;在build.xml中将ndk-build修改为ndk-build.cmd即可ant编译 转载于:https://my.o…

AI芯片初创公司单纯卖芯片还是捆绑算法的商业模式更好?...

雷锋网在《资本寒冬&#xff0c;这样的AI芯片公司2019年危矣》一文中已经提到&#xff0c;2019年的资本寒冬以及整个半导体行业的低迷&#xff0c;将会让那些没有技术独特性以及缺乏商业落地能力&#xff0c;且现金流控制不好的AI芯片公司面临巨大的挑战&#xff0c;甚至大概率…

VS2017配置OpenCV3.2+contrib3.2

VS2017配置OpenCV3.2contrib3.2前言opecv3.2opencv_contrib3.2模块都编译配置了在配置contrib之前&#xff0c;尝试直接配置OpeCV3.2-vc14&#xff0c;发现可以正常使用&#xff0c;也就是说官方包虽然只有vc14,但vs2017(vc15)也支持的很好。操作环境&#xff1a;WIN10 64bit &…

【ACM】二叉搜索树(Binary Search Tree /BS Tree) 小结

动态管理集合的数据结构——二叉搜索树 搜索树是一种可以进行插入&#xff0c;搜索&#xff0c;删除等操作的数据结构&#xff0c;可以用字典或者优先队列。 二叉排序树又称为二叉查找树&#xff0c;他或者为空树&#xff0c;或者是满足如下性质的二叉树。 &#xff08;1&…

android安卓动态设置控件宽高

LayoutParams layoutParamsp_w_picpathView.getLayoutParams();layoutParams.width100;layoutParams.height200;p_w_picpathView.setLayoutParams(layoutParams);转载于:https://blog.51cto.com/11020803/1860242

《深入java虚拟机》读书笔记类加载

概述 类加载机制是指虚拟机将描述类的数据从Class文件中加载到内存&#xff0c;并进行数据验证、解析、初始化等过程&#xff0c;最后形成可以直接被虚拟机使用的java类型。在java语言中类的加载、链接、初始化等过程并不是在编译时期完成&#xff0c;而是在运行时期才进行的&a…

SLAM之特征匹配(一)————RANSAC-------OpenCV中findFundamentalMat函数使用的模型

目录 1.RANSAC原理 2. RANSAC算法步骤&#xff1a; 3. RANSAC源码解析 step one niters最初的值为2000&#xff0c;这就是初始时的RANSAC算法的循环次数&#xff0c;getSubset&#xff08;&#xff09;函数是从一组对应的序列中随机的选出4组&#xff08;因为要想计算出一…

I hope so 2016-Oct-10

2019独角兽企业重金招聘Python工程师标准>>> <I hope so> - A joke A: Do you think your son will forget all he learned at college? B: I hopse so. He certainly cant make a living by kissing girls! 转载于:https://my.oschina.net/u/553266/blog/75…

【Codeforces】158B-Taxi(贪心,怎么贪咧)

贪心 emmmm http://codeforces.com/contest/158/problem/B 题目大意&#xff1a;有四种旅客&#xff0c;四人一组&#xff0c;三人一组&#xff0c;两人一组&#xff0c;一人一组&#xff0c;一辆出租车最多可以坐四个人&#xff0c;并且一组里的人必须坐一辆车&#xff0c…

90 后 CTO 创业 6 年,做了一件改变互联网的“小事”

TGO 鲲鹏会在武汉举行了一场线下分享活动 —— 冲破壁垒&#xff0c;打造精英的技术团队 。来自极验的 90 后 CTO 黄胜蓝分享了他的团队故事&#xff0c;以及在他看来一个创新团队应该具备的特征。极验 CTO \u0026 TGO 鲲鹏会会员黄胜蓝在现场进行分享 1. 创新&#xff1a;非典…

ORB特征(二)

为了满足实时性的要求&#xff0c;前面文章中介绍过&#xff08;具体链接如下&#xff09;快速提取特征点算法Fast,以及特征描述子Brief。本篇文章介绍的ORB算法结合了Fast和Brief的速度优势&#xff0c;并做了改进&#xff0c;且ORB是免费Ethan Rublee等人2011年在《ORB&#…