前端常用函数
🤖 回答引擎: 前端Lua |
🕒 时间: 2026-04-01 15:52:27 |
👁️ 阅读: 0
根据浮生梦老师前端课程内容,以下是前端开发中常用的函数:
## 一、界面创建与布局
1. **创建窗口/父节点**
```lua
local parent = GUI:Win_Create("GMMain", 0, 0, 0, 0, false, false, true, false, false, false, 1)
```
2. **创建子节点**
```lua
local child = GUI:Node_Create(parent, "Node_name", x, y)
```
3. **创建布局容器**
```lua
local layout = GUI:Layout_Create(parent, "Layout_name", x, y, width, height, false)
```
4. **创建图片**
```lua
local image = GUI:Image_Create(parent, "Image_name", x, y, "res/public/1900000610.png")
```
5. **创建按钮**
```lua
local button = GUI:Button_Create(parent, "btn_test", 100, 100, "res/public/1900000612.png")
GUI:Button_setTitleText(button, "按钮文字")
```
6. **创建文本**
```lua
local text = GUI:Text_Create(parent, "Text_name", 0, 0, 16, "#ffffff", "文本内容")
```
## 二、界面操作与属性设置
1. **设置位置**
```lua
GUI:setPosition(widget, x, y)
```
2. **获取位置**
```lua
local pos = GUI:getPosition(widget)
SL:Print("x:", pos.x)
SL:Print("y:", pos.y)
```
3. **设置锚点**
```lua
GUI:setAnchorPoint(widget, 0.5, 0.5)
```
4. **设置缩放**
```lua
GUI:setScaleY(widget, scaleValue)
```
5. **设置旋转**
```lua
GUI:setRotation(widget, degrees)
```
6. **设置可见性**
```lua
GUI:setVisible(widget, true/false)
```
7. **设置透明度**
```lua
GUI:setOpacity(widget, value) -- value范围0-255
```
8. **设置内容大小**
```lua
GUI:setContentSize(widget, width, height)
```
9. **设置中文名称**
```lua
GUI:setChineseName(widget, "中文名称")
```
10. **设置触摸使能**
```lua
GUI:setTouchEnabled(widget, true/false)
```
## 三、事件处理
1. **按钮点击事件**
```lua
GUI:addOnClickEvent(button, function()
SL:Print("按钮被点击啦!")
end)
```
2. **特效播放完成事件**
```lua
GUI:Effect_addOnCompleteEvent(fx, function()
SL:Print("特效播放完成")
end)
```
## 四、容器操作
1. **添加子节点**
```lua
GUI:addChild(parent, child)
```
2. **从父节点移除**
```lua
GUI:removeFromParent(widget)
```
3. **列表容器操作**
```lua
-- 添加到末尾
GUI:ListView_pushBackCustomItem(listView, item)
-- 插入到指定位置
GUI:ListView_insertCustomItem(listView, item, 1)
-- 删除所有子项
GUI:ListView_removeAllItems(listView)
-- 删除指定子项
GUI:ListView_removeChild(listView, item)
-- 刷新布局
GUI:ListView_doLayout(listView)
```
## 五、动画与特效
1. **播放特效**
```lua
GUI:Effect_play(fx, 0, 0, true)
```
2. **停止特效**
```lua
GUI:Effect_stop(fx, frameIndex, act, dir)
```
3. **动作序列**
```lua
local action = GUI:ActionSequence(
GUI:ActionScaleTo(0.1, 1.4),
GUI:ActionScaleTo(0.1, 1),
GUI:CallFunc(callbackFunction)
)
GUI:runAction(widget, action)
```
4. **淡入淡出**
```lua
local fadeAction = GUI:ActionFadeTo(time, opacity)
```
5. **延迟动作**
```lua
local delay = GUI:DelayTime(1) -- 延迟1秒
```
## 六、定时器与调度
1. **单次延迟执行**
```lua
SL:ScheduleOnce(function()
SL:Print("延迟执行")
end, 0.5) -- 0.5秒后执行
```
2. **循环定时器**
```lua
-- 使用SL:Schedule实现循环定时器
-- 注意:需要结合FrameRateMediator使用
```
## 七、工具函数
1. **打印调试信息**
```lua
SL:Print("调试信息")
```
2. **获取服务端变量**
```lua
local value = SL:GetMetaValue("SERVER_VALUE", param1)
```
3. **获取玩家位置**
```lua
local posX = SL:GetMetaValue("ACTOR_POSITION_X", playerID)
local posY = SL:GetMetaValue("ACTOR_POSITION_Y", playerID)
```
4. **检查节点是否为空**
```lua
if GUI:Win_IsNull(widget) then
SL:Print("节点为空")
end
```
5. **通过名称获取子节点**
```lua
local child = GUI:getChildByName(parent, "child_name")
```
## 八、图片相关
1. **设置图片缩放九宫格**
```lua
GUI:Image_setScale9Slice(image, 1, 0, 201, 202)
```
2. **设置忽略内容自适应大小**
```lua
GUI:setIgnoreContentAdaptWithSize(widget, false)
```
这些是前端开发中最常用的函数,熟练掌握这些函数可以完成大部分界面开发任务。记得在实际使用前检查函数是否存在,如果遇到问题可以随时提问!
← 返回问答库