Egret的按钮事件处理

首先要在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转换一下即可。

点赞
收藏

评论区

加载中...

相关推荐

MySQL:[Err] 1292 - Incorrect datetime value: ‘0000-00-00 00:00:00‘ for column ‘CREATE_TIME‘ at row 1

文章目录问题用navicat导入数据时,报错:原因这是因为当前的MySQL不支持datetime为0的情况。解决修改sql\mode:sql\mode:SQLMode定义了MySQL应支持的SQL语法、数据校验等,这样可以更容易地在不同的环境中使用MySQL。全局s

Oracle 分组与拼接字符串同时使用

SELECTT.,ROWNUMIDFROM(SELECTT.EMPLID,T.NAME,T.BU,T.REALDEPART,T.FORMATDATE,SUM(T.S0)S0,MAX(UPDATETIME)CREATETIME,LISTAGG(TOCHAR(

MySQL部分从库上面因为大量的临时表tmp_table造成慢查询

背景描述Time:20190124T00:08:14.70572408:00User@Host:@Id:Schema:sentrymetaLast_errno:0Killed:0Query_time:0.315758Lock_

皕杰报表之UUID

​在我们用皕杰报表工具设计填报报表时,如何在新增行里自动增加id呢?能新增整数排序id吗?目前可以在新增行里自动增加id,但只能用uuid函数增加UUID编码,不能新增整数排序id。uuid函数说明:获取一个UUID,可以在填报表中用来创建数据ID语法:uuid()或uuid(sep)参数说明:sep布尔值,生成的uuid中是否包含分隔符'',缺省为

手写Java HashMap源码

HashMap的使用教程HashMap的使用教程HashMap的使用教程HashMap的使用教程HashMap的使用教程22

java将前端的json数组字符串转换为列表

记录下在前端通过ajax提交了一个json数组的字符串,在后端如何转换为列表。前端数据转化与请求varcontracts{id:'1',name:'yanggb合同1'},{id:'2',name:'yanggb合同2'},{id:'3',name:'yang