怎么添加节点到main
🤖 回答引擎: 前端Lua |
🕒 时间: 2026-04-30 20:35:32 |
👁️ 阅读: 13
根据浮生梦老师前端课程内容,添加节点到main(通常指主界面或主节点)有以下几种方式:
## 1. 直接创建子节点
```lua
-- 假设main是已经创建好的父节点
local main = GUI:Win_Create("GMMain", 0, 0, 0, 0, false, false, true, false, false, false, 1)
-- 创建子节点并直接添加到main
local childNode = GUI:Node_Create(main, "child_node", 100, 200)
```
## 2. 使用addChild函数添加
```lua
-- 先创建节点
local childNode = GUI:Node_Create(nil, "child_node", 100, 200)
-- 然后添加到main节点
GUI:addChild(main, childNode)
```
## 3. 创建各种控件到main节点
```lua
-- 创建图片
local img = GUI:Image_Create(main, "img_bg", 0, 0, "res/custom/31_wuguan/bg.png")
-- 创建按钮
local btn = GUI:Button_Create(main, "btn_test", 100, 100, "res/custom/common/close1.png")
-- 创建文本
local text = GUI:Text_Create(main, "Text_name", 50, 50, 16, "#ffffff", "文本内容")
-- 创建列表视图
local listView = GUI:ListView_Create(main, "ListView", 30, 450, 132, 400, 1)
```
## 4. 设置节点属性
```lua
-- 设置锚点(通常为居中)
GUI:setAnchorPoint(childNode, 0.50, 0.50)
-- 设置中文名称
GUI:setChineseName(childNode, "子节点")
-- 设置标签(用于后续查找)
GUI:setTag(childNode, 123)
TAGOBJ["123"] = childNode
-- 设置触摸启用
GUI:setTouchEnabled(childNode, true)
```
## 5. 完整示例
```lua
-- 创建主界面
local main = GUI:Win_Create("MainWindow", 0, 0, 800, 600, false, false, true, false, false, false, 1)
-- 添加背景图片
local bg = GUI:Image_Create(main, "img_bg", 0, 0, "res/custom/31_wuguan/bg.png")
GUI:setAnchorPoint(bg, 0.50, 0.50)
-- 添加关闭按钮
local btnClose = GUI:Button_Create(main, "btn_close", 760, 456, "res/custom/common/close1.png")
GUI:addOnClickEvent(btnClose, function()
SL:print("关闭按钮被点击")
end)
-- 添加文本
local title = GUI:Text_Create(main, "Text_title", 400, 500, 24, "#ffffff", "主界面标题")
GUI:Text_setFontName(title, "fonts/font5.ttf")
GUI:Text_enableOutline(title, "#000000", 1)
```
**关键点:**
1. 所有控件创建函数的第一个参数都是父节点
2. 使用`GUI:addChild()`可以将已创建的节点添加到父节点
3. 记得设置必要的属性如锚点、位置、大小等
4. 节点创建后会自动添加到父节点下,无需额外调用addChild
有什么具体的使用场景需要帮助吗?
← 返回问答库