Egret的按鈕事件處理


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

 


免責聲明!

本站轉載的文章為個人學習借鑒使用,本站對版權不負任何法律責任。如果侵犯了您的隱私權益,請聯系本站郵箱yoyou2525@163.com刪除。



 
粵ICP備18138465號   © 2018-2025 CODEPRJ.COM