动态更新prefab中的资源纹理失败

Simulator: texture name E:/Cocos_Projects/GameTest/assets/resources/subGameUI/gamechose_101.png
Simulator: D:/CocosCreator/resources/cocos2d-x/simulator/win32//src/jsb_polyfill.js:34690:TypeError: texture is null

上面时报错信息,图片资源是存在的但是提示找不到什么鬼?

        var item = cc.instantiate(self.subgamePrefab);
        item.getChildByName("lab_version").getComponent(cc.Label).string= "v1.0."+i;
        item.setPosition(-370 + (i % 3) * 250,-10 - Math.floor((i) / 3) * 262); 
        self.subgameList.addChild(item,i,i*123);
        var name = cc.url.raw("resources/subGameUI/gamechose_101.png")
        cc.log("texture name   " + name)
        item.getComponent(cc.Sprite).spriteFrame.setTexture(name)
1赞

额,看这个没看出来啥问题。
能不能提供一个简单的 Demo 额~~

试试看

cc.loader.loadRes('subGameUI/gamechose_101', cc.Texture2D, function (err, texture) {
    item.getComponent(cc.Sprite).spriteFrame.setTexture(texture);
});

问题已经解决了,但不知到为什么??

关键在 new cc.SpriteFrame 上~

为什么spriteFrame调用setTexture就没有成功的啊???

因为 spriteFrame 全局只会有一份,你修改了以后,会影响到其它正在使用相同 SpriteFrame 的组件~