local attrDescs = GUIFunction:GetParseItemDesc(suitConfig.equipAttStr)
if attrDescs and attrDescs.desc and next(attrDescs.desc) then --这里不支持top bottom
for i, v in pairs(attrDescs.desc) do
if v.text then
index = index + 1
local la
🤖 回答引擎: 前端Lua |
🕒 时间: 2026-04-07 17:50:26 |
👁️ 阅读: 0
根据你的需求,需要根据`meetCount`的值来动态替换`v.text`字符串中特定颜色标签的数值。
首先,我们需要解析`v.text`中的颜色标签,然后根据`meetCount`的条件,将符合条件的`<数字/FCOLOR=250>`和`<数字/FCOLOR=251>`标签中的颜色值(250和251)替换为13。
这里是一个处理函数,可以嵌入到你的循环中:
```lua
if v.text then
-- 获取原始文本
local rawText = v.text
local processedText = rawText
-- 根据meetCount条件进行替换
if meetCount < 2 then
-- 替换<2/FCOLOR=250>和<2/FCOLOR=251>中的颜色值
processedText = string.gsub(processedText, "<2/FCOLOR=250>", "<2/FCOLOR=13>")
processedText = string.gsub(processedText, "<2/FCOLOR=251>", "<2/FCOLOR=13>")
end
if meetCount < 4 then
-- 替换<4/FCOLOR=250>和<4/FCOLOR=251>中的颜色值
processedText = string.gsub(processedText, "<4/FCOLOR=250>", "<4/FCOLOR=13>")
processedText = string.gsub(processedText, "<4/FCOLOR=251>", "<4/FCOLOR=13>")
end
if meetCount < 6 then
-- 替换<6/FCOLOR=250>和<6/FCOLOR=251>中的颜色值
processedText = string.gsub(processedText, "<6/FCOLOR=250>", "<6/FCOLOR=13>")
processedText = string.gsub(processedText, "<6/FCOLOR=251>", "<6/FCOLOR=13>")
end
if meetCount < 7 then
-- 替换<7/FCOLOR=250>和<7/FCOLOR=251>中的颜色值
processedText = string.gsub(processedText, "<7/FCOLOR=250>", "<7/FCOLOR=13>")
processedText = string.gsub(processedText, "<7/FCOLOR=251>", "<7/FCOLOR=13>")
end
index = index + 1
local label_posName = GUI:RichTextFCOLOR_Create(panel, "desc_text_" .. index, 0, 0, processedText or "", suitWidth - 20, _setFontSize or _DefaultFSize, SL:GetColorByStyleId(255), vspace, nil, fontPath)
GUI:setAnchorPoint(label_posName, 0, 0)
GUI:setTag(label_posName, index)
local size = GUI:getContentSize(label_posName)
heights[index] = size.height + interval
richWidth = math.max(richWidth, size.width)
end
```
这个代码会:
1. 根据`meetCount`的值分别检查每个条件
2. 只替换对应数字标签中的颜色值(250和251替换为13)
3. 保持其他标签不变
4. 使用处理后的文本创建富文本控件
注意:这里使用了`string.gsub`函数进行字符串替换,这是Lua标准库函数,可以直接使用。
根据你的需求,需要根据`meetCount`的值来动态替换`v.text`字符串中特定颜色标签的数值。
首先,我们需要解析`v.text`中的颜色标签,然后根据`meetCount`的条件,将符合条件的`<数字/FCOLOR=250>`和`<数字/FCOLOR=251>`标签中的颜色值(250和251)替换为13。
这里是一个处理函数,可以嵌入到你的循环中:
```lua
if v.text then
-- 获取原始文本
local rawText = v.text
local processedText = rawText
-- 根据meetCount条件进行替换
if meetCount < 2 then
-- 替换<2/FCOLOR=250>和<2/FCOLOR=251>中的颜色值
processedText = string.gsub(processedText, "<2/FCOLOR=250>", "<2/FCOLOR=13>")
processedText = string.gsub(processedText, "<2/FCOLOR=251>", "<2/FCOLOR=13>")
end
if meetCount < 4 then
-- 替换<4/FCOLOR=250>和<4/FCOLOR=251>中的颜色值
processedText = string.gsub(processedText, "<4/FCOLOR=250>", "<4/FCOLOR=13>")
processedText = string.gsub(processedText, "<4/FCOLOR=251>", "<4/FCOLOR=13>")
end
if meetCount < 6 then
-- 替换<6/FCOLOR=250>和<6/FCOLOR=251>中的颜色值
processedText = string.gsub(processedText, "<6/FCOLOR=250>", "<6/FCOLOR=13>")
processedText = string.gsub(processedText, "<6/FCOLOR=251>", "<6/FCOLOR=13>")
end
if meetCount < 7 then
-- 替换<7/FCOLOR=250>和<7/FCOLOR=251>中的颜色值
processedText = string.gsub(processedText, "<7/FCOLOR=250>", "<7/FCOLOR=13>")
processedText = string.gsub(processedText, "<7/FCOLOR=251>", "<7/FCOLOR=13>")
end
index = index + 1
local label_posName = GUI:RichTextFCOLOR_Create(panel, "desc_text_" .. index, 0, 0, processedText or "", suitWidth - 20, _setFontSize or _DefaultFSize, SL:GetColorByStyleId(255), vspace, nil, fontPath)
GUI:setAnchorPoint(label_posName, 0, 0)
GUI:setTag(label_posName, index)
local size = GUI:getContentSize(label_posName)
heights[index] = size.height + interval
richWidth = math.max(richWidth, size.width)
end
```
这个代码会:
1. 根据`meetCount`的值分别检查每个条件
2. 只替换对应数字标签中的颜色值(250和251替换为13)
3. 保持其他标签不变
4. 使用处理后的文本创建富文本控件
注意:这里使用了`string.gsub`函数进行字符串替换,这是Lua标准库函数,可以直接使用。
← 返回问答库