雖然可以在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的值改掉。