创建item框
🤖 回答引擎: 前端Lua |
🕒 时间: 2026-05-08 13:46:52 |
👁️ 阅读: 8
根据浮生梦老师前端课程内容,创建一个Item框需要遵循以下步骤:
```lua
-- 1. 创建父节点容器
local parent = GUI:Win_Create("GMMain", 0, 0, 0, 0, false, false, true, false, false, false, 1)
-- 2. 创建Item框容器
local itemContainer = GUI:Layout_Create(parent, "item_container", 100, 100, 80, 80, false)
-- 3. 初始化Item配置(根据平台选择不同配置)
local IsPc = SL:GetMetaValue("WINPLAYMODE")
local path = IsPc and "item/item_win32" or "item/item"
itemContainer:InitWidgetConfig(path)
-- 4. 获取UI委托对象
local ui = GUI:ui_delegate(itemContainer._widget)
if not ui then
SL:Print("获取UI委托失败")
return
end
-- 5. 初始化UI布局
local Panel_bg = ui["Panel_bg"]
local size = GUI:getContentSize(Panel_bg)
-- 设置容器大小和锚点
GUI:setContentSize(itemContainer, size)
GUI:setAnchorPoint(itemContainer, 0.5, 0.5)
-- 6. 设置Item背景和图标按钮
GUI:setPosition(Panel_bg, 0, 0)
GUI:setIgnoreContentAdaptWithSize(ui["Button_icon"], true)
GUI:Button_setZoomScale(ui["Button_icon"], -0.1)
-- 7. 设置图标按钮位置和状态
local bgSize = GUI:getContentSize(Panel_bg)
GUI:setPosition(ui["Button_icon"], bgSize.width * 0.5, bgSize.height * 0.5)
GUI:setTouchEnabled(ui["Button_icon"], false)
GUI:Button_loadTextureNormal(ui["Button_icon"], "res/item/un_define.pvr.ccz")
-- 8. 清理和隐藏其他元素
GUI:setVisible(ui["Image_power"], false)
GUI:setVisible(ui["Image_choosTag"], false)
GUI:setVisible(ui["Image_bg"], false)
GUI:removeAllChildren(ui["Node_needNum"])
-- 9. 设置按钮样式
GUI:Button_setBrightStyle(ui["Button_icon"], 0)
GUI:setScale(ui["Button_icon"], 1)
-- 10. 设置触摸事件
GUI:setTouchEnabled(Panel_bg, false)
GUI:setSwallowTouches(Panel_bg, true)
GUI:setSwallowTouches(ui["Button_icon"], true)
```
**关键点说明:**
1. **父节点创建**:必须先用`GUI:Win_Create`创建父容器
2. **Layout容器**:使用`GUI:Layout_Create`创建Item框主体
3. **配置初始化**:通过`InitWidgetConfig`加载Item的UI配置
4. **尺寸适配**:根据背景板大小自动调整容器尺寸
5. **平台适配**:PC端和移动端使用不同的配置路径
这个Item框包含了背景、图标按钮等基础元素,可以根据需要添加数量、品质框等子控件。
← 返回问答库