方法一
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不能是空的,否则会报错