1银子
[mw_shl_code=applescript,true]module mygui
{
export class GRectBtn extends egret.Sprite
{
private m_pLinkObj:any;
private m_pFunction:any;
private m_pRect;
private m_nColor1:number;
private m_pText:egret.TextField;
public constructor(_text:string="Btn",_x:number=0,_y:number=0,_w:number=100,_h:number=30,_c0:number=0x005070,_textSize:number=16,_textColor:number=0xffffff)
{
super();
this.x=_x;
this.y=_y;
this.m_nColor1=_c0;
this.m_pRect=new egret.Shape();
this.m_pRect.x=-this.width/2;
this.m_pRect.y=-this.height/2;
this.m_pRect.width=_w;
this.m_pRect.height=_h;
this.addChild(this.m_pRect);
this.FillColor(_c0);
this.m_pText=utils.createTextLabel(_text,_textColor,"center",egret.VerticalAlign.MIDDLE,_text,_textSize);
this.m_pText.width=_w;
this.m_pText.height=_h;
this.addChild(this.m_pText);
this.Enable();
}
public SetLinkFun(plink:any,pfun:any){
this.m_pLinkObj=plink;
this.m_pFunction=pfun;
}
public SetText(txt:string){
this.m_pText.text=txt;
}
private FillColor(_c:number){
this.m_pRect.graphics.clear();
this.m_pRect.graphics.beginFill(_c,1);
this.m_pRect.graphics.drawRoundRect(0,0,this.m_pRect.width,this.m_pRect.height,Math.min(this.m_pRect.width,this.m_pRect.height)/3,Math.min(this.m_pRect.width,this.m_pRect.height)/3);
this.m_pRect.graphics.endFill();
}
public Enable(){
this.m_pRect.touchEnabled=true;
this.m_pRect.addEventListener(egret.TouchEvent.TOUCH_BEGIN,this.OnTouchBegin, this);
this.m_pRect.addEventListener(egret.TouchEvent.TOUCH_OUT,this.OnTouchEnd, this);
this.m_pRect.addEventListener(egret.TouchEvent.TOUCH_END,this.OnTouchEnd, this);
egret.MainContext.instance.stage.addEventListener(egret.Event.LEAVE_STAGE,this.OnTouchEnd,this);
}
public UnEnable(){
this.m_pRect.touchEnabled=false;
this.m_pRect.removeEventListener(egret.TouchEvent.TOUCH_BEGIN,this.OnTouchBegin, this);
this.m_pRect.removeEventListener(egret.TouchEvent.TOUCH_OUT,this.OnTouchEnd, this);
this.m_pRect.removeEventListener(egret.TouchEvent.TOUCH_END,this.OnTouchEnd, this);
egret.MainContext.instance.stage.removeEventListener(egret.Event.LEAVE_STAGE,this.OnTouchEnd,this);
}
private OnClick(){
if(this.m_pLinkObj==null || this.m_pFunction==null) return;
this.m_pLinkObj.call(this.m_pFunction,this.m_pLinkObj);
}
public OnTouchBegin(event:egret.TouchEvent)
{
this.FillColor(0xffffff-this.m_nColor1);
}
public OnTouchEnd(event:egret.TouchEvent)
{
this.FillColor(this.m_nColor1);
this.OnClick();
}
}
}
[/mw_shl_code]
不过按住移动出按钮,在抬起来时候响应不到end,请应该怎么写
|
|