批量更换图片纹理的问题,在线等

一个节点下多个图片批量更换图片

方法一:
for (var i in urls) {
cc.loader.load({id: urls[i], type: ‘png’}, function (err, img) {
cc.find(‘root/faces/face’ + i).getComponent(cc.Sprite).spriteFrame.setTexture(img);
});
}
换了以后所有的图片都是一样的

方法二:
for (var i in urls) {
cc.loader.load({id: urls[i], type: ‘png’}, function (err, img) {
cc.find(‘root/faces/face’ + i).getComponent(cc.Sprite).spriteFrame = new cc.SpriteFrame(img);
});
}
这种方法显示正常了,但是大小不对了,更换后图片node的大小变成了图片的原始尺寸大小,包括设置的九宫格显示等参数都没有了

大小要设置一下 sprite 的 sizeMode 为 custom。另外九宫格是存在 SpriteFrame 中的,你要加载远程图片的话,要自己想办法保存九宫格信息,然后赋值给 new 出来的 SpriteFrame

我自己定义的SpriteFrame旁边没有编辑功能

Creator的精灵组件上的SpriteFream有九宫编辑按钮

@jare 大大,能分享下这个开关怎么显示吗?