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

2,编写TypeScript脚本:

public mybutton:eui.Button;

函数内部:this.mybutton.addEventListener(egret.TouchEvent.TOUCH_TAP,(event:egret.TouchEvent)=>{

  },this);

或者:this.mybutton.addEventListener(egret.TouchEvent.TOUCH_TAP,()=>{
  //具体实现,按钮点击之后具体实现的功能
},this);
再者,也可以利用Image作为按钮背景,进行点击 GameUtil.bitmapToBtn(this.mybutton,(e)=>{ });

  

或者单独设一个函数做按钮点击事件的响应
this.mybutton.addEventListener(egret.TouchEvent.TOUCH_TAP,this.btnTouchHandler,this); private btnTouchHandler(event:egret.TouchEvent):void {
console.log("button touched");
}

  

   public static bitmapToBtn(bitmap: egret.Bitmap, callback) {
bitmap.touchEnabled = true
// 记录当前位置
const source: Point = new Point(bitmap.x, bitmap.y)
// 记录原来的锚点
const sourceAnchor: Point = new Point(bitmap.anchorOffsetX, bitmap.anchorOffsetY)
// 监听触摸事件
bitmap.addEventListener(egret.TouchEvent.TOUCH_BEGIN, () => {
// 改变按钮的锚点
bitmap.anchorOffsetX = bitmap.width / 2
bitmap.anchorOffsetY = bitmap.height / 2
// 如果改变后的锚点和原来的不一样,那就需要改变按钮位置
if (!new Point(bitmap.anchorOffsetX, bitmap.anchorOffsetY).equal(sourceAnchor)) {
bitmap.x = source.x + bitmap.anchorOffsetX
bitmap.y = source.y + bitmap.anchorOffsetY
}
// 缩放
bitmap.scaleX = 0.95
bitmap.scaleY = 0.95
}, this)
bitmap.addEventListener(egret.TouchEvent.TOUCH_TAP, () => {
reset()
// 这个事件发生才算是点击按钮
callback && callback()
}, this)
bitmap.addEventListener(egret.TouchEvent.TOUCH_CANCEL, reset, this)
bitmap.addEventListener(egret.TouchEvent.TOUCH_END, reset, this)
bitmap.addEventListener(egret.TouchEvent.TOUCH_RELEASE_OUTSIDE, reset, this) function reset() {
bitmap.anchorOffsetX = sourceAnchor.x
bitmap.anchorOffsetY = sourceAnchor.y
bitmap.x = source.x
bitmap.y = source.y
bitmap.scaleX = 1
bitmap.scaleY = 1
}
}

  另,按钮的显示(标签显示内容)字体大小设置:

(<eui.Label>this.mybutton.labelDisplay).size = 50;

labelDisplay是个接口,使用eui.Label转换一下即可。

Egret的按钮事件处理的更多相关文章

  1. TypeScript白鹭引擎Egret防止按钮事件冒泡穿透

    this.addEventListener(egret.TouchEvent.TOUCH_BEGIN, (event) => { if (event.target!=this) return;/ ...

  2. android 入门-防微信拍摄视频 按钮事件处理

    package com.cc.view; import com.cc.R; import com.cc.R.layout; import com.cc.R.menu; import android.o ...

  3. Winform界面中实现通用工具栏按钮的事件处理

    在一个给客户做的项目中,界面要求修改增加通用工具栏按钮的事件处理,也就是在主界面中放置几个固定的功能操作按钮,打开不同的页面的时候,实现对应页面的功能处理,这种和我标准的界面处理方式有所不同,标准的列 ...

  4. Android按钮单击事件处理的几种方法(Android学习笔记)

    方法一:匿名内部类实现按钮事件处理 this.btnButton=(Button)super.findViewById(R.id.mybtn); this.btnButton.setOnClickLi ...

  5. C#委托及事件处理机制浅析

    事件可以理解为某个对象所发出的消息,以通知特定动作(行为)的发生或状态的改变.行为的发生可能是来自用户交互,如鼠标点击:也可能源自其它的程序逻辑.在这里,触发事件的对象被称为事件(消息)发出者(sen ...

  6. Egret 入门

    居然使用 TyptScript... 先贴手册地址:http://www.typescriptlang.org/docs/tutorial.html. 先要接受一个诡异的写法: private loa ...

  7. 如何在移动web模仿客户端给input输入框添加自定义清除按钮

    项目有个需求就是在input输入框添加清除按钮,网上查找资料加上自己琢磨终于弄出来了. 灵感来自于 http://www.zhangxinxu.com/wordpress/?p=4077 由于项目已经 ...

  8. win32按钮

    1.按钮是什么 在win32窗口中,经常可以看到按钮,点击按钮可以触发各种事件:   创建按钮的函数: void CreateButton(HWND hwnd) //参数为父窗口句柄,按钮必须属于一个 ...

  9. 关于编写性能高效的javascript事件的技术

    如何能做出高效的web前端程序是我每次做前端开发都会不自觉去考虑的问题.几年前雅虎里牛逼的前端工程师们出了一本关于提升web前端性能的书籍,轰动了整个web开发技术界,让神秘的web前端优化问题成为了 ...

随机推荐

  1. rsync + sersync 实现实时数据同步

    一.环境: 主机1:youzhuan-bak     centos 7.2 主机2:youzhuan-online   centos 7.2 二.部署过程: youzhuan-bak : [root@ ...

  2. Authentication讲解(Spring security认证)

    标准认证过程: 1.用户使用username和password登录 2.系统验证这个password对于该username是正确的 3.假设第二步验证成功,获取该用户的上下文信息(如他的角色列表) 4 ...

  3. 51nod 2512

    看错题目!!啊啊啊,都说了不能有前导,我怎么这么想当然呢!!另外1也是2的幂次方 代码: #include<iostream> #include<cstdio> #includ ...

  4. 20175204 张湲祯 2018-2019-2《Java程序设计》2

    20175204 张湲祯 2018-2019-2<Java程序设计>2 必做课下作业MyCP 要求 编写MyCP.java 实现类似Linux下cp XXX1 XXX2的功能,要求MyCP ...

  5. Beta答辩总结

    组员名单 短学号 姓名 备注 409 后敬甲 组长 301 蔡文斌 315 黄靖茹 423 刘浩 317 黄泽 328 卢泽明 617 葛亮 344 张杰 348 朱跃安 链接汇总 组长博客:后敬甲 ...

  6. 使用docker中mysql镜像

    1.拉取mysql镜像 docker pull mysql:5.6 2.运行mysql的镜像生成一个正在运行的容器,可以通过docker contain ls得到容器的id信息 docker run ...

  7. 以iphone作为热点时ios程序中的UDP广播地址

    iPhone 开启热点后,会启用一个 172.20.10.0/28 的子网, 也就是最多15个ip地址,自己的地址是172.20.10.1, 广播地址是 172.20.10.15 ,不是传统的255. ...

  8. LeetCode 9. Palindrome Number(c语言版)

    题目: Determine whether an integer is a palindrome. An integer is a palindrome when it reads the same ...

  9. JAVA 导包,使用前面的类~

    package Code413;/*1.导包,也就是指出需要使用的类,在什么位置import 包名称,类名称对于与当前同类属于同一个包的情况,可以省略导包语句不写..2.创建,格式:类名称 对象名=n ...

  10. tp5 自定义排序