在Label.as版本中,是这样的:
override public function get width():Number {
if (_width || _tf.text) return super.width;
return 0;
}
/**
* @inheritDoc
*/
override public function set width(value:Number):void {
super.width = value;
_tf.width = value;
}
对应到laya.core.js是这样的:
__getset(0,__proto,'width',function(){
if (this._width || this._tf.text)return Laya.superGet(Component,this,'width');
return 0;
},function(value){
Laya.superSet(Component,this,'width',value);
this._tf.width=value;
});
getset:function(isStatic,o,name,getfn,setfn){
if(!isStatic){
getfn && Laya.un(o,'_$get_'+name,getfn);
setfn && Laya.un(o,'_$set_'+name,setfn);
}
else{
getfn && (o['_$GET_'+name]=getfn);
setfn && (o['_$SET_'+name]=setfn);
}
if(getfn && setfn)
Object.defineProperty(o,name,{get:getfn,set:setfn,enumerable:false});
else{
getfn && Object.defineProperty(o,name,{get:getfn,enumerable:false});
setfn && Object.defineProperty(o,name,{set:setfn,enumerable:false});
}
},
注意Laya.superSet第一个参数,要传父类的名称