-- 展开天命界面
local ID = SL:GetMetaValue("MAIN_ACTOR_ID")
local Lv = SL:GetMetaValue("ACTOR_LEVEL", ID)
local rLv = SL:GetMetaValue("RELEVEL")
GUI:addOnClickEvent(PlayerEquip._ui.destiny_btn, function()
-- 切换天命界面的显示状态
loca
🤖 回答引擎: 前端Lua |
🕒 时间: 2026-05-18 00:44:38 |
👁️ 阅读: 4
根据浮生梦老师前端课程内容,你的代码有几个需要修正的地方:
1. **函数使用问题**:`GUI:ActionFadeTo()` 这个函数不存在,应该使用 `GUI:Timeline_FadeTo()`
2. **获取可见性函数**:`GUI:getVisible()` 函数不存在,应该使用 `GUI:isVisible()`
3. **按钮亮度设置**:`GUI:Button_setBright()` 函数不存在,应该使用 `GUI:setBright()`
修正后的代码:
```lua
-- 展开天命界面
local ID = SL:GetMetaValue("MAIN_ACTOR_ID")
local Lv = SL:GetMetaValue("ACTOR_LEVEL", ID)
local rLv = SL:GetMetaValue("RELEVEL")
GUI:addOnClickEvent(PlayerEquip._ui.destiny_btn, function()
-- 切换天命界面的显示状态
local destiny_bg = PlayerEquip._ui.destiny_bg
if GUI:Win_IsNull(destiny_bg) then
return
end
local isVisible = GUI:isVisible(destiny_bg)
-- 切换可见性
GUI:setVisible(destiny_bg, not isVisible)
-- 淡入淡出效果
if not isVisible then
GUI:setOpacity(destiny_bg, 0)
GUI:runAction(destiny_bg, GUI:Timeline_FadeTo(destiny_bg, 255, 0.2))
end
end)
for k, v in ipairs(PlayerEquip.destiny_config) do
local btn = GUI:getChildByName(PlayerEquip._ui.destiny_list, "btn_"..k)
if Lv < v.level or rLv < v.rlv then
GUI:setBright(btn, false)
-- SL:ShowSystemTips("对不起,您的等级不足")
else
GUI:setBright(btn, true)
GUI:addOnClickEvent(btn, function()
SL:Require("qianduan/button/destiny.lua", true, destinyHandler(btn, k))
end)
end
end
function destinyHandler(btnObj, i)
local LT_Node = GUI:Attach_LeftTop_T()
GUI:Image_Create(LT_Node, "picture", 0, 0, "res/public_win32/bg_npc_01.png")
end
```
主要修改:
1. 将 `GUI:ActionFadeTo()` 改为 `GUI:Timeline_FadeTo(widget, value, time)`
2. 将 `GUI:getVisible()` 改为 `GUI:isVisible()`
3. 将 `GUI:Button_setBright()` 改为 `GUI:setBright()`
注意:`GUI:Timeline_FadeTo()` 的参数顺序是 `(widget, value, time)`,其中 value 是透明度值(0-255),time 是动画时间。
根据浮生梦老师前端课程内容,你的代码有几个需要修正的地方:
1. **函数使用问题**:`GUI:ActionFadeTo()` 这个函数不存在,应该使用 `GUI:Timeline_FadeTo()`
2. **获取可见性函数**:`GUI:getVisible()` 函数不存在,应该使用 `GUI:isVisible()`
3. **按钮亮度设置**:`GUI:Button_setBright()` 函数不存在,应该使用 `GUI:setBright()`
修正后的代码:
```lua
-- 展开天命界面
local ID = SL:GetMetaValue("MAIN_ACTOR_ID")
local Lv = SL:GetMetaValue("ACTOR_LEVEL", ID)
local rLv = SL:GetMetaValue("RELEVEL")
GUI:addOnClickEvent(PlayerEquip._ui.destiny_btn, function()
-- 切换天命界面的显示状态
local destiny_bg = PlayerEquip._ui.destiny_bg
if GUI:Win_IsNull(destiny_bg) then
return
end
local isVisible = GUI:isVisible(destiny_bg)
-- 切换可见性
GUI:setVisible(destiny_bg, not isVisible)
-- 淡入淡出效果
if not isVisible then
GUI:setOpacity(destiny_bg, 0)
GUI:runAction(destiny_bg, GUI:Timeline_FadeTo(destiny_bg, 255, 0.2))
end
end)
for k, v in ipairs(PlayerEquip.destiny_config) do
local btn = GUI:getChildByName(PlayerEquip._ui.destiny_list, "btn_"..k)
if Lv < v.level or rLv < v.rlv then
GUI:setBright(btn, false)
-- SL:ShowSystemTips("对不起,您的等级不足")
else
GUI:setBright(btn, true)
GUI:addOnClickEvent(btn, function()
SL:Require("qianduan/button/destiny.lua", true, destinyHandler(btn, k))
end)
end
end
function destinyHandler(btnObj, i)
local LT_Node = GUI:Attach_LeftTop_T()
GUI:Image_Create(LT_Node, "picture", 0, 0, "res/public_win32/bg_npc_01.png")
end
```
主要修改:
1. 将 `GUI:ActionFadeTo()` 改为 `GUI:Timeline_FadeTo(widget, value, time)`
2. 将 `GUI:getVisible()` 改为 `GUI:isVisible()`
3. 将 `GUI:Button_setBright()` 改为 `GUI:setBright()`
注意:`GUI:Timeline_FadeTo()` 的参数顺序是 `(widget, value, time)`,其中 value 是透明度值(0-255),time 是动画时间。
← 返回问答库