GUI:Text_setString(ui.Text_2, string.format("【%s】级 每升1级需要:等级丹*%d个", curnLevel, curnNum))怎么让这些字分别设置颜色
🤖 回答引擎: 前端Lua |
🕒 时间: 2026-04-27 14:30:45 |
👁️ 阅读: 19
根据浮生梦老师前端课程内容,要让字符串中的不同部分显示不同颜色,不能使用 `GUI:Text_setString` 配合 `string.format` 一次性设置,因为 `GUI:Text` 控件本身不支持富文本(即一段文字内包含多种样式)。
你需要使用富文本控件 `GUI:RichText_Create` 来实现这个效果。
以下是修改后的代码示例:
```lua
-- 假设你已经有一个父节点 parentNode
-- 先移除旧的 Text 控件(如果存在)
if ui.Text_2 and not GUI:Win_IsNull(ui.Text_2) then
GUI:removeFromParent(ui.Text_2)
ui.Text_2 = nil
end
-- 创建富文本控件
local richTextStr = string.format("<font color='%s' size=16>【%s】级</font> <font color='%s' size=16> 每升1级需要:</font><font color='%s' size=16>等级丹*%d个</font>",
"#FFFFFF", -- 等级数字的颜色,例如白色
curnLevel,
"#FFCE9C", -- 描述文字的颜色,例如淡黄色
"#FF0000", -- 物品数量的颜色,例如红色
curnNum)
ui.Text_2 = GUI:RichText_Create(parentNode, "Text_2", x, y, richTextStr, width, 16, "#FFFFFF", 0)
```
**参数说明:**
- `parentNode`: 父控件对象
- `"Text_2"`: 控件ID
- `x`, `y`: 控件位置坐标
- `richTextStr`: 使用HTML标签格式化的字符串,`<font color='颜色值' size=字体大小>文字内容</font>`
- `width`: 富文本控件的宽度(可选)
- `16`: 字体大小(可选,但建议指定以保持一致性)
- `"#FFFFFF"`: 默认颜色(可选)
- `0`: 行间距(可选)
**学习建议:**
富文本是处理复杂文字样式的标准方法。记住它的格式是类似HTML的标签,可以嵌套不同颜色、大小甚至超链接。如果对颜色值或布局有更多疑问,可以问浮生梦尊师!
← 返回问答库