首先要在exml内要设置有对应按钮的ID

2,编写TypeScript脚本:
1public mybutton:eui.Button; 2 3函数内部:this.mybutton.addEventListener(egret.TouchEvent.TOUCH_TAP,(event:egret.TouchEvent)=>{ },this); 4 5或者:this.mybutton.addEventListener(egret.TouchEvent.TOUCH_TAP,()=>{ 6 //具体实现,按钮点击之后具体实现的功能 7},this); 8再者,也可以利用Image作为按钮背景,进行点击 9 10GameUtil.bitmapToBtn(this.mybutton,(e)=>{ 11 12}); 13 14或者单独设一个函数做按钮点击事件的响应 15this.mybutton.addEventListener(egret.TouchEvent.TOUCH_TAP,this.btnTouchHandler,this); 16 17private btnTouchHandler(event:egret.TouchEvent):void { 18 console.log("button touched"); 19} 20 21public static bitmapToBtn(bitmap: egret.Bitmap, callback) { 22 bitmap.touchEnabled = true 23 // 记录当前位置 24 const source: Point = new Point(bitmap.x, bitmap.y) 25 // 记录原来的锚点 26 const sourceAnchor: Point = new Point(bitmap.anchorOffsetX, bitmap.anchorOffsetY) 27 // 监听触摸事件 28 bitmap.addEventListener(egret.TouchEvent.TOUCH_BEGIN, () => { 29 // 改变按钮的锚点 30 bitmap.anchorOffsetX = bitmap.width / 2 31 bitmap.anchorOffsetY = bitmap.height / 2 32 // 如果改变后的锚点和原来的不一样,那就需要改变按钮位置 33 if (!new Point(bitmap.anchorOffsetX, bitmap.anchorOffsetY).equal(sourceAnchor)) { 34 bitmap.x = source.x + bitmap.anchorOffsetX 35 bitmap.y = source.y + bitmap.anchorOffsetY 36 } 37 // 缩放 38 bitmap.scaleX = 0.95 39 bitmap.scaleY = 0.95 40 }, this) 41 bitmap.addEventListener(egret.TouchEvent.TOUCH_TAP, () => { 42 reset() 43 // 这个事件发生才算是点击按钮 44 callback && callback() 45 }, this) 46 bitmap.addEventListener(egret.TouchEvent.TOUCH_CANCEL, reset, this) 47 bitmap.addEventListener(egret.TouchEvent.TOUCH_END, reset, this) 48 bitmap.addEventListener(egret.TouchEvent.TOUCH_RELEASE_OUTSIDE, reset, this) 49 50 function reset() { 51 bitmap.anchorOffsetX = sourceAnchor.x 52 bitmap.anchorOffsetY = sourceAnchor.y 53 bitmap.x = source.x 54 bitmap.y = source.y 55 bitmap.scaleX = 1 56 bitmap.scaleY = 1 57 } 58 }
另,按钮的显示(标签显示内容)字体大小设置:
(<eui.Label>this.mybutton.labelDisplay).size = 50;
labelDisplay是个接口,使用eui.Label转换一下即可。