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