5个一级菜单 每个一级菜单下 有3个二级菜单 res/public/1900000612.png 按钮用这个图片
🤖 回答引擎: 前端Lua |
🕒 时间: 2026-02-27 00:57:20 |
👁️ 阅读: 22
我来帮你创建一个包含5个一级菜单,每个一级菜单下有3个二级菜单的界面。
```lua
-- 创建主窗口
local parent = GUI:Win_Create("GMMain", 0, 0, 0, 0, false, false, true, false, false, false, 1)
-- 创建一级菜单容器
local menuLayout = GUI:Layout_Create(parent, "menuLayout", 50, 100, 500, 50, false)
GUI:setAnchorPoint(menuLayout, 0.00, 0.00)
GUI:setTouchEnabled(menuLayout, false)
-- 存储一级菜单按钮和对应的二级菜单容器
local primaryMenus = {}
local secondaryLayouts = {}
-- 创建5个一级菜单
for i = 1, 5 do
-- 创建一级菜单按钮
local btnName = "primaryMenu_" .. i
local btnX = (i - 1) * 100 + 10
local primaryBtn = GUI:Button_Create(menuLayout, btnName, btnX, 0, "res/public/1900000612.png")
GUI:Button_setTitleText(primaryBtn, "菜单" .. i)
GUI:Button_setTitleColor(primaryBtn, "#FFFFFF")
GUI:Button_setTitleFontSize(primaryBtn, 14)
GUI:Button_titleEnableOutline(primaryBtn, "#000000", 1)
GUI:setAnchorPoint(primaryBtn, 0.00, 0.00)
GUI:setTouchEnabled(primaryBtn, true)
-- 创建对应的二级菜单容器
local secondaryName = "secondaryLayout_" .. i
local secondaryLayout = GUI:Layout_Create(parent, secondaryName, btnX, 50, 100, 100, false)
GUI:setAnchorPoint(secondaryLayout, 0.00, 0.00)
GUI:setTouchEnabled(secondaryLayout, false)
GUI:setVisible(secondaryLayout, false) -- 初始隐藏
-- 创建3个二级菜单按钮
for j = 1, 3 do
local secondaryBtnName = "secondaryBtn_" .. i .. "_" .. j
local secondaryBtn = GUI:Button_Create(secondaryLayout, secondaryBtnName, 0, (j - 1) * 35, "res/public/1900000612.png")
GUI:Button_setTitleText(secondaryBtn, "子项" .. j)
GUI:Button_setTitleColor(secondaryBtn, "#FFFFFF")
GUI:Button_setTitleFontSize(secondaryBtn, 12)
GUI:Button_titleEnableOutline(secondaryBtn, "#000000", 1)
GUI:setAnchorPoint(secondaryBtn, 0.00, 0.00)
GUI:setTouchEnabled(secondaryBtn, true)
-- 为二级菜单添加点击事件
GUI:addOnClickEvent(secondaryBtn, function()
SL:Print("点击了菜单" .. i .. "的子项" .. j)
end)
end
-- 存储引用
primaryMenus[i] = primaryBtn
secondaryLayouts[i] = secondaryLayout
-- 为一级菜单添加点击事件
GUI:addOnClickEvent(primaryBtn, function()
-- 隐藏所有二级菜单
for k = 1, 5 do
if k ~= i then
GUI:setVisible(secondaryLayouts[k], false)
end
end
-- 切换当前二级菜单的显示状态
local isVisible = GUI:isVisible(secondaryLayout)
GUI:setVisible(secondaryLayout, not isVisible)
SL:Print("点击了一级菜单" .. i)
end)
end
-- 添加背景图片
local background = GUI:Image_Create(parent, "background", 0, 0, "res/public_win32/1900000610.png")
GUI:setAnchorPoint(background, 0.00, 0.00)
GUI:setTouchEnabled(background, false)
-- 将背景移到最底层
GUI:setLocalZOrder(background, -1)
SL:Print("菜单界面创建完成!")
```
这个脚本创建了一个完整的菜单系统:
1. **一级菜单**:5个按钮水平排列,每个按钮点击后会显示/隐藏对应的二级菜单
2. **二级菜单**:每个一级菜单下有3个二级菜单按钮,垂直排列
3. **交互逻辑**:
- 点击一级菜单时,显示对应的二级菜单,同时隐藏其他二级菜单
- 点击二级菜单时,会在控制台打印点击信息
4. **视觉效果**:
- 使用指定的按钮图片 `res/public/1900000612.png`
- 添加了指定的背景图片 `res/public_win32/1900000610.png`
- 设置了按钮文字颜色和描边效果
你可以根据需要调整按钮位置、大小和文字内容。
← 返回问答库