BagItemText = class("BagItemText")
local __GD_Style = SL:GetMetaValue("GAME_DATA", "goods_item_star_styleid") or ""
local IsWinPlayMode = SL:GetMetaValue("WINPLAYMODE")
local starOriPos = nil -- 初始星级位置
function BagItemText:ctor(parent, data)
s
在`SL:print(11111111)`的地方,你可以通过`ui_starLv`的父节点来获取装备名称。根据浮生梦老师前端课程内容,你可以这样修改:
```lua
-- 装备星级
function BagItemText:SetStarLevel(star)
local ui_starLv = self._ui["Text_star_lv"]
if not ui_starLv then
return false
end
if not (star and star > 0) then
GUI:setVisible(ui_starLv, false)
return false
end
-- 获取装备名称
local Text_name = GUI:getChildByName(self._parent, "Text_name")
if not GUI:Win_IsNull(Text_name) then
local itemName = GUI:Text_getString(Text_name) or ""
SL:print("装备名字:", itemName)
end
GUI:setVisible(ui_starLv, true)
GUI:Text_setString(ui_starLv, "+" .. star)
local arrays = string.split(__GD_Style, "|")
__GD_Style = IsWinPlayMode and arrays[2] or arrays[1]
local styles = SL:Split(__GD_Style, "#")
local colorId = tonumber(styles[1])
local offX = tonumber(styles[2]) or 0
local offY = tonumber(styles[3]) or 0
if colorId then
GUI:Text_setTextColor(ui_starLv, SL:GetHexColorByStyleId(colorId))
local pos = GUI:getPosition(ui_starLv)
GUI:setPosition(ui_starLv, pos.x + offX, pos.y + offY)
end
end
```
关键修改:
1. 使用 `GUI:getChildByName(self._parent, "Text_name")` 获取装备名称文本节点
2. 使用 `GUI:Win_IsNull()` 判断节点是否有效
3. 使用 `GUI:Text_getString()` 获取文本内容
4. 将 `GUI:setVisible(ui_starLv, false)` 改为 `GUI:setVisible(ui_starLv, true)`(原代码这里有个错误)
这样就能在设置星级时打印出装备名称了。