local jinengqianghua = {}
-- 配置数据
local config = {
[1] = { name = "攻杀剑术1级", level = 1, img = 1, nameid = 7, value1 = 10, value2 = 20000, cur_attr_7 = 3, cur_attr_8 = 3, cur_attr_9 = 500, cur_attr_10 = 100 },
[2] = { name = "攻杀剑术2级", level =
🤖 回答引擎: 前端Lua |
🕒 时间: 2026-04-13 20:40:40 |
👁️ 阅读: 8
从你提供的代码来看,`magic_level` 这个文本控件创建后没有设置显示内容。你只创建了控件,但没有调用 `GUI:Text_setString()` 来设置文本内容。
在 `jinengqianghua.upmain()` 函数中,你创建了文本控件:
```lua
local magic_level = GUI:getChildByName(btn, "magic_level_" .. magic_id)
if GUI:Win_IsNull(magic_level) then
magic_level = GUI:Text_Create(btn, "magic_level_" .. magic_id, 116, 16, 16, "#00ff00", [[文本]])
GUI:setAnchorPoint(magic_level, 0.50, 0.00)
end
```
这里初始文本是 `[[文本]]`,但之后没有更新为实际的技能等级。你需要在获取到技能等级后,设置文本内容:
```lua
-- 获取技能等级(这里需要你实现获取等级的逻辑)
local skillLevel = lib:get_skill_qh_level(magic_id) or 0
-- 设置文本内容
GUI:Text_setString(magic_level, "Lv." .. skillLevel)
```
同样的问题也出现在 `magic_att` 控件上。你需要在 `click_magic_btn` 函数中或者创建控件后立即设置文本内容。
另外,根据浮生梦老师前端课程内容,建议在创建控件时就设置好初始文本,而不是使用 `[[文本]]` 这样的占位符。可以参考技能界面的实现方式:
```lua
-- 创建时直接设置内容
local magic_level = GUI:Text_Create(btn, "magic_level_" .. magic_id, 116, 16, 16, "#00ff00", "Lv.0")
GUI:setAnchorPoint(magic_level, 0.50, 0.00)
```
然后在技能更新时刷新显示:
```lua
-- 在技能更新事件中刷新文本
local currentLevel = lib:get_skill_qh_level(magic_id) or 0
GUI:Text_setString(magic_level, "Lv." .. currentLevel)
```
记得检查一下 `lib:get_skill_qh_level()` 函数是否正确返回了技能等级数据,如果这个函数返回的是nil或者0,也会导致不显示。
← 返回问答库