cc.loader.loadResArray怎么处理同名不同后缀的文件?

动态加载龙骨资源时,因为导出文件中其中两个名字相同,仅仅是后缀类型不同。且由于loadResArray第2个参数资源类型Type只能传一个,导致没法批量加载。建议loadResArray第2个参数能传入类型数组。
我给官方提了个pr
https://github.com/cocos-creator/engine/pull/3312

你哪只眼睛看到名字相同了?

放到resources目录里的文件,加载的时候会省略掉后缀名。
朋友,说话不要那么戾气

1赞

那你试试 loadResArray,参数给一个数组

再不行参考下这个:
区别在于,这是远程下载后得到的。

readRes: function(heroName, x, y, scale, self){
var self = self || this;
var path = jsb.fileUtils.getWritablePath() +‘dragonBones/’;
var fileExt = [’_ske.json’, ‘_tex.json’, ‘_tex.png’];
var fileArr = [];
for(var i=0; i<3; i++){
fileArr.push(path + heroName + fileExt[i]);
}
cc.loader.load(fileArr, function(err, res){
if (err) {
for (var i = 0; i < err.length; i++) {
cc.log(‘Error url [’ + err[i] + ']: ’ + res.getError(err[i]));
}
return;
}
//骨骼数据
var bonesAsset = new dragonBones.DragonBonesAsset;
bonesAsset.dragonBonesJson = JSON.stringify(res.getContent(fileArr[0]));
//蒙皮数据
var atlasAsset = new dragonBones.DragonBonesAtlasAsset;
atlasAsset.atlasJson = JSON.stringify(res.getContent(fileArr[1]));
atlasAsset.texture = fileArr[2];
//新建节点
var node = new cc.Node();
var display = node.addComponent(dragonBones.ArmatureDisplay);
node.setPosition(x, y);
node.setScale(scale);
self.node.addChild(node);
self.currHero = node;

  	display.dragonAtlasAsset = atlasAsset;
  	display.dragonAsset      = bonesAsset;
  	display.armatureName     = 'armatureName';
  	display.playAnimation('Standby', 0);
  	cc.audioEngine.playEffect(this.sound[0]);
    });

},

我的不是远程下载的。现在放在resources目录里,因为有名字相同后缀不同的资源,所以用不了cc.loader.loadResArray。但是用cc.loader.load又不知道该传什么路径

2.0.5还会有这个问题,请问解决了吗?

2.0.5 的 loadResArray 的第二个参数可以传类型数组的,你试一下。

嗯,可以了,谢谢