creator 多语言图集资源替换
- 一般预制体和scense文件里绑定的资源都是图集里每个spriteFrame的uuid
只有替换除了_uuid的其他非方法的属性才可以达到使用新图集的效果
代码如下:
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21
| let assetArr = ["CommonText_EN", "CommonText_CN"]; let assetUrl = "texture/" + assetArr[0]; // 加载预制体等UI上绑定的默认图集资源 cc.loader.loadRes(assetUrl, cc.SpriteAtlas, (err, lastAsset)=> { let newAssetUrl = "texture/" + assetArr[1]; // 加载替换的新语言图集资源 cc.loader.loadRes(newAssetUrl,cc.SpriteAtlas, (err, newAsset)=> { for(let key in lastAsset._spriteFrames){ let lastSP = lastAsset._spriteFrames[key]; let newSP = newAsset._spriteFrames[key]; for(let i in lastSP){ if(!(lastSP[i] instanceof Function) && i != "isValid" && i != "nativeUrl" && i != "_uuid"){ // 替换全部spriteFrames为新图集的spriteFrames lastSP[i] = newSP[i]; } } } // 重新加载Scene cc.director.loadScene('Home'); }); });
|