先上圖,左側是運行的效果,
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) {}, });