Egret白鹭引擎实例开发之密室逃生RoomRun(二)自定义按钮类与特殊字符数字类

一、自定义按钮类

自定义按钮类构造函数传入两个参数,一个是按钮背景,一个是按钮文字

public constructor(bgName:string, titleName:string) {

super();

this._bg = GameConst.createBitmapFromSheet(bgName, "ui");

this.addChild(this._bg);

this.title = GameConst.createBitmapFromSheet(titleName, "ui");

this.title.x = (this._bg.width - this.title.width) >> 1;

this.title.y = (this._bg.height - this.title.height) >> 1;

this.addChild(this.title);

}

并实现点击触发事件,传入的参数即为触发的函数

//设置点击触发事件

public setClick(func:Function):void {

this.touchEnabled = true;

this.addEventListener(egret.TouchEvent.TOUCH_TAP, this.onClickEvent, this);

this.onClick = func;

}

//点击触发的事件

private onClickEvent() {

this.onClick();

}

二、特殊字符数字类

游戏中的分数、时间等为了美观采用位图文本来进行展示,特殊字符数字类则是将数字文本转为位图文本显示

    /**设置显示的字符串 */

    public setData(str:string):void {

        this.clear();

        if(str == "" || str == null) {

            return;

        }

        //把所有数字每一个都存进数组中

        let chars:Array<string> = str.split("");

        let w:number = 0;

        //所有的长度

        let length:number = chars.length;

        for(let i:number = 0; i < length; i++) {

            try {

                let image:egret.Bitmap = GameConst.createBitmapFromSheet(chars[i], "ui");

                if(image) {

                    image.x = w;

                    w += image.width + this.gap;

                    this.addChild(image);

                }

            } catch (error) {

                console.log(error);

            }

        }

        this.anchorOffsetX = this.width / 2;

    }


发表评论

(必填)

(必填)

(以便回访)

博客已稳定运行: 访问量:191,813 views 网站备案号:闽ICP备17026396号-1