用处:换皮肤
部分代码:(对比原来Image类,下面代码是添加进去的)
_imgs:保存所有图片
_skinId:皮肤id
img.skin = img.skin:设置皮肤时候,重新设置一下所有图片路径
imgs.push(this):创建一个图片对象,需要添加进来
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;
}
}
/**
* 创建一个 <code>Image</code> 实例。
* @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);