Cocos Creator加载文本文件
程序员文章站
2024-03-16 16:44:16
...
Cocos Creator 加载文本文件
写在前面
之前用cocos creator加载一些cc.SrpiteFrame的时候,利用cc.loader.loadRes()方法甚是便捷。cc.loader.loadTxt被移除之后,怎么加载文本文件呢?
cc.loader.loadRes
我们知道cc在动态加载文件的时候需要将文件放在resources文件下。其次我们要搞清楚的一点事,如下代码中的res是什么?
cc.loader.loadRes(url, function(err, res){
if(err){
cc.error(err.message);
return;
}
...
});
下面代码加载了一个SpriteFrame:
cc.loader.loadRes("characters/C12", function (err, pic) {
if (err) {
cc.error(err.message);
return;
}
console.log(pic); // 由于是图片,这里pic是cc_Texture2D对象
console.log(pic.toString()); // res/import/97/976d9e70-d09f-48c2-93e5-85cccfb6c69d.jpg
console.log(pic.nativeUrl); // res/import/97/976d9e70-d09f-48c2-93e5-85cccfb6c69d.jpg
// 可以看到 pic.toString()方法返回nativeUrl的值
});
下面的代码是加载一个文本文件:
cc.loader.loadRes("configure/character", function (err, conf) {
if (err) {
cc.error(err.message);
return;
}
console.log(conf); // 由于是文本,这里conf是cc_Asset对象
console.log(conf.toString()); // res/import/14/1400c110-37ad-489f-9016-0637a4a0709f.conf
console.log(conf.nativeUrl); // res/import/14/1400c110-37ad-489f-9016-0637a4a0709f.conf
// 可以看到 conf.toString()方法返回nativeUrl的值
// console.log("url: " + conf) // 这里应该会默认调用 toString 方法
/**
* 由此可见 loadRes真正返回的是资源对象
* 如果是内置的资源类型,那么可以特定对象(如cc.SpriteFrame,cc.Altlas)赋值
* 而一些文本文件,则需要进一步通过cc.loader.load()函数进行加载
*/
cc.loader.load(conf.nativeUrl, function(err, text){
console.log(text);
});
});
我们可以看到cc.loader.loadRes函数返回的是一个资源对象,而对于非内置的资源类型,需要进一步加载。这对于文本、图片都是适用的。而cc.loader.load()函数的url参数则需要用到资源对象的nativeUrl
属性。
总结
非内置资源的加载方式,通过cc.loader.loadRres获取资源对象,在通过cc.loader.load通过资源对象的nativeUrl
属性获取资源内容。
cc.loader.loadRes("configure/character", function(err, conf) {
if (err) {
cc.error(err.message);
return;
}
cc.loader.load(conf.nativeUrl,
function(err, text) {
console.log(text);
});
});
这里character是一个文本文件,loadRes不要指定后缀名。