如何动态更换sprite图片哇

方法一
var imgs = new Array(“icon-quit.png”,“icon-quit.png”);
this.node.spriteFrame = new cc.SpriteFrame(imgs[this.type]);
方法二
var file = cc.url.raw(imgs[this.type]);
this.node.spriteFrame = new cc.SpriteFrame(file);
以上两种方式都试过了,但是都报下面的错误,我自愿是放到resources文件夹里面了的
Sorry can not load ‘icon-quit.png’ because it is not placed in the ‘resources’ folder

第二句改成
this.node.getComponent(cc.Sprite).spriteFrame = new cc.SpriteFrame(file);
试试?

还是报同样的错了

动画其实也可以

什么意思,没看懂

这种需要动态加载的资源都需要把资源放在resources目录下

这样写:
let spriteFrame=cc.url.raw(“resources/Dialog/”+Param.icon+".png");
Dialog._icon.getComponent(cc.Sprite).spriteFrame=new cc.SpriteFrame(spriteFrame);
可以换图片但控制台有错误:
texture-util.js:101 internal error: loader handle pipe must be skipped

再次报错:
texture-util.js:48 Uncaught TypeError: tex.once is not a function
哪里出错了?

cc.loader.loadRes(‘Dialog/icon’, cc.SpriteFrame, function (err, spriteFrame) {
Dialog._icon.getComponent(cc.Sprite).spriteFrame=spriteFrame;
});
icon.png需在resources/Dialog文件夹下
精灵的初始Sprite Frame不能是空的,否则会报错