CocosCreator Label如何加粗?

雖然可以在RichText中使用加粗標籤來讓文本加粗,但是RichText太多會降低遊戲性能,所以找到一種可以使用Label加粗的方法,

const { ccclass, property, menu} = cc._decorator;

@ccclass
@menu('添加渲染組件/BoldLabel')
export default class BoldLabel extends cc.Label{
    @property(cc.Boolean)
    private _bold:boolean=false;
    @property({Type:cc.Boolean})
    public set bold(value:boolean){
        this._bold=value;
        this["_sgNode"].enableBold(value);
    }
    public get bold(){
        return this._bold;
    }

    public start(){
        this["_sgNode"].enableBold(this.bold);//this.bold=true則加粗
    }
}

繼承cc.Label腳本,給Label加一個加粗的屬性。注意:加粗後我們運行網頁,會發現網頁上的字體有位移,我大概測了一下,位移距離大概是3個像素。所以我們要在腳本中將這3個像素減掉。

export default class BoldLabel extends cc.Label{
    ...
    public start(){
        this["_sgNode"].enableBold(this.bold);//this.bold=true則加粗
        if(!CC_EDITOR){//如果不是在編輯器環境中
            this.node.y-=3;
        }
    }
}

放在start裏面,還要判斷是不是編輯器狀態,不然可能start會在編輯器環境中將y的值改掉。

發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章