用處:換皮膚
部分代碼:(對(duì)比原來(lái)Image類,下面代碼是添加進(jìn)去的)
_imgs:保存所有圖片
_skinId:皮膚id
img.skin = img.skin:設(shè)置皮膚時(shí)候瑰抵,重新設(shè)置一下所有圖片路徑
imgs.push(this):創(chuàng)建一個(gè)圖片對(duì)象你雌,需要添加進(jìn)來(lái)
value = value.substr(0,index)+"/sn"+skinId + value.substr(index+4):修改指定圖片的路徑
比如:第一套皮膚的圖片命名sn1;第二套皮膚的圖片命名sn2等
private static var _imgs:Array = [];
private static var _skinId:String = "1";
public static function setSkinId(id:String):void{
_skinId = id;
var img:Image;
for(var i:int = _imgs.length-1;i>=0;i--){
img = _imgs[i];
if(img.destroyed){
_imgs.splice(i,1);
continue;
}
img.skin = img.skin;
}
}
/**
* 創(chuàng)建一個(gè) <code>Image</code> 實(shí)例。
* @param skin 皮膚資源地址二汛。
*/
public function Image(skin:String = null) {
_imgs.push(this);
this.skin = skin;
}
public function set skin(value:String):void {
if(value != null){
var index:int = value.indexOf("/sn");
if(index > 0){
value = value.substr(0,index)+"/sn"+_skinId + value.substr(index+4);
}
}
if (_skin != value) {
_skin = value;
if (value) {
var source:Texture = Loader.getRes(value);
if (source) {
this.source = source;
onCompResize();
} else Laya.loader.load(_skin, Handler.create(this, setSource, [_skin]), null, Loader.IMAGE,1,true,_group);
} else {
this.source = null;
}
}
}
修改皮膚代碼:
Image.setSkinId(1);
//Image.setSkinId(2);