先上图,左侧是运行的效果,
cc.Class({ extends: cc.Component, /* * cocos creator动态更换纹理 *方法一,预先在编辑器里设置好所有的纹理,绑定到对应的脚本。 替换的时候只需要将目标的spriteFrame=source.spriteFrame即可。 把图片拖到编辑器中 , 把编辑器中的图片与数组绑定 // 方法1 this.spr.spriteFrame = this.sprArray[this.imgIdx-1].spriteFrame // 方法2 // var s = "resources/candy_0" + this.imgIdx + ".png" // this.spr.spriteFrame = new cc.SpriteFrame(cc.url.raw(s)) } 第2种办法不需要预先把图片放到编辑器中,办法更灵活。推荐使用 注:利用第二种方法,是需要把资源放到resources目录下面的,否则无法找到。 * */ properties: { //创建一个数组,创建当前的要替换纹理索引 sprArray:{ default:[], type:[cc.Sprite] }, changeSprite:{ default:null, type:cc.Sprite } }, start:function () { //this.changeSprite.spriteFrame=this.sprArray[0].spriteFrame;//选取Sprite数组里的第一个图片元素
//第一种方法,似乎有误,正在努力修改中....
var s="resources/home"+".png"; this.changeSprite.spriteFrame=new cc.SpriteFrame(cc.url.raw(s)); } , omLoad:function(){ }, // update (dt) {}, });