如果不用RichText组件,文本字体怎样添加斜体加粗等样式,感谢解答
看 CCRichText.js 源码:
_applyTextAttribute (labelNode) {
let labelComponent = labelNode.getComponent(cc.Label);
if (!labelComponent) {
return;
}
let index = labelNode._styleIndex;
labelComponent.lineHeight = this.lineHeight;
labelComponent.horizontalAlign = HorizontalAlign.LEFT;
labelComponent.verticalAlign = VerticalAlign.CENTER;
let textStyle = null;
if (this._textArray[index]) {
textStyle = this._textArray[index].style;
}
if (textStyle && textStyle.color) {
labelNode.color = this._convertLiteralColorValue(textStyle.color);
}else {
labelNode.color = this._convertLiteralColorValue("white");
}
labelComponent._enableBold(textStyle && textStyle.bold);
labelComponent._enableItalics(textStyle && textStyle.italic);
//TODO: temporary implementation, the italic effect should be implemented in the internal of label-assembler.
if (textStyle && textStyle.italic) {
labelNode.skewX = 12;
}
labelComponent._enableUnderline(textStyle && textStyle.underline);
if (textStyle && textStyle.outline) {
let labelOutlineComponent = labelNode.getComponent(cc.LabelOutline);
if (!labelOutlineComponent) {
labelOutlineComponent = labelNode.addComponent(cc.LabelOutline);
}
labelOutlineComponent.color = this._convertLiteralColorValue(textStyle.outline.color);
labelOutlineComponent.width = textStyle.outline.width;
}
if (textStyle && textStyle.size) {
labelComponent.fontSize = textStyle.size;
}
else {
labelComponent.fontSize = this.fontSize;
}
labelComponent._updateRenderData(true);
if (textStyle && textStyle.event) {
if (textStyle.event.click) {
labelNode._clickHandler = textStyle.event.click;
}
}
},
```
**所以实现方式就是:**
```javascript
this.label._enableBold(true); // 加粗
this.label._enableItalics(true);
this.label.node.skewX = 12; // 改 node 的 skewX 实现斜体 ← 这句生效
this.label._enableUnderline(true); // 下划线
```
其中 `this.label` 为 cc.Label 组件
3赞
label组件勾选“Enable Bold”和“Enable Italic”