function lianhuo.main(param1, param2, param3, param4)
lib:Require(param1, function(state)
if state then
if param1 then
lianhuo.parent = lib:openwin(param1, nil, true, param4) or {}
lianhuo.param
🤖 回答引擎: 前端Lua |
🕒 时间: 2026-03-23 15:56:02 |
👁️ 阅读: 3
根据浮生梦老师的前端课程内容,要实现从下方弹出到上方3秒消失的系统提示,可以使用动作序列结合富文本控件。以下是修改后的代码:
```lua
function lianhuo.main(param1, param2, param3, param4)
lib:Require(param1, function(state)
if state then
if param1 then
lianhuo.parent = lib:openwin(param1, nil, true, param4) or {}
lianhuo.param1 = param1
end
if param2 then
lianhuo.param2 = param2
end
if param3 then
lianhuo.param3 = param3
end
if lianhuo.parent.cfg and next(lianhuo.parent.cfg) then
lianhuo.upmain()
else
lib:msg("系统未配置!")
GUI:Win_Close(lianhuo.parent._parent)
end
local var = tonumber(SL:GetMetaValue("SERVER_VALUE", "U48"))
local myStr = ""
if var >= 10 then
myStr = "“三缕稳定之火…成了!混沌熔炉百年内再无爆裂之忧!小子,你真是个赌徒中的赌徒,这是你应得的!”"
else
myStr = "“小子,想过去?可以!先帮老夫一个玩命的忙。看见那尊混沌熔炉了吗?去收集不稳定的炎核回来,老夫教你如何注入。先说好,这东西十有八九会炸,粉身碎骨可别怨我!嘿嘿嘿……”"
end
-- 创建父窗口
local parent = GUI:Win_Create("NoticeParent", 0, 0, 0, 0, false, false, true, false, false, false, 1)
-- 创建富文本
local coloredStr = string.format("<outline color = '#00ff00' size = '1'>%s</outline>", myStr)
local richText = GUI:RichText_Create(parent, "richText", 800, 100, coloredStr, 10000, 16)
GUI:setAnchorPoint(richText, 0.5, 0.5)
-- 设置初始位置在屏幕下方
GUI:setPosition(richText, 400, -100)
-- 计算内容宽度
local contentSize = GUI:getContentSize(richText)
-- 创建动作序列:从下方弹出 -> 停留 -> 消失
local moveUp = GUI:ActionMoveTo(0.5, 400, 100) -- 从下方移动到上方
local delay = GUI:DelayTime(2) -- 停留2秒
local fadeOut = GUI:ActionFadeTo(0.5, 0) -- 淡出消失
local remove = GUI:CallFunc(function()
GUI:removeFromParent(parent)
end)
local sequence = GUI:ActionSequence(moveUp, delay, fadeOut, remove)
GUI:runAction(richText, sequence)
end
end)
end
```
**代码说明:**
1. **创建父窗口**:使用`GUI:Win_Create`创建透明父窗口作为容器
2. **创建富文本**:使用`GUI:RichText_Create`创建带绿色描边的文本
3. **初始位置**:设置文本初始位置在屏幕下方(y坐标为负值)
4. **动作序列**:
- `GUI:ActionMoveTo(0.5, 400, 100)`:0.5秒内从下方移动到屏幕上方
- `GUI:DelayTime(2)`:停留2秒
- `GUI:ActionFadeTo(0.5, 0)`:0.5秒内淡出
- `GUI:CallFunc`:动画完成后移除控件
5. **总时间**:0.5秒(弹出)+ 2秒(停留)+ 0.5秒(消失)= 3秒
**注意:**
- 坐标值(400, 100)需要根据实际屏幕分辨率调整
- 使用`GUI:ActionFadeTo`前确保控件已设置不透明度
- 动画完成后必须调用`GUI:removeFromParent`清理资源
这样修改后,系统提示就会从屏幕下方弹出到上方,停留一段时间后消失,总时长约为3秒。
根据浮生梦老师的前端课程内容,要实现从下方弹出到上方3秒消失的系统提示,可以使用动作序列结合富文本控件。以下是修改后的代码:
```lua
function lianhuo.main(param1, param2, param3, param4)
lib:Require(param1, function(state)
if state then
if param1 then
lianhuo.parent = lib:openwin(param1, nil, true, param4) or {}
lianhuo.param1 = param1
end
if param2 then
lianhuo.param2 = param2
end
if param3 then
lianhuo.param3 = param3
end
if lianhuo.parent.cfg and next(lianhuo.parent.cfg) then
lianhuo.upmain()
else
lib:msg("系统未配置!")
GUI:Win_Close(lianhuo.parent._parent)
end
local var = tonumber(SL:GetMetaValue("SERVER_VALUE", "U48"))
local myStr = ""
if var >= 10 then
myStr = "“三缕稳定之火…成了!混沌熔炉百年内再无爆裂之忧!小子,你真是个赌徒中的赌徒,这是你应得的!”"
else
myStr = "“小子,想过去?可以!先帮老夫一个玩命的忙。看见那尊混沌熔炉了吗?去收集不稳定的炎核回来,老夫教你如何注入。先说好,这东西十有八九会炸,粉身碎骨可别怨我!嘿嘿嘿……”"
end
-- 创建父窗口
local parent = GUI:Win_Create("NoticeParent", 0, 0, 0, 0, false, false, true, false, false, false, 1)
-- 创建富文本
local coloredStr = string.format("<outline color = '#00ff00' size = '1'>%s</outline>", myStr)
local richText = GUI:RichText_Create(parent, "richText", 800, 100, coloredStr, 10000, 16)
GUI:setAnchorPoint(richText, 0.5, 0.5)
-- 设置初始位置在屏幕下方
GUI:setPosition(richText, 400, -100)
-- 计算内容宽度
local contentSize = GUI:getContentSize(richText)
-- 创建动作序列:从下方弹出 -> 停留 -> 消失
local moveUp = GUI:ActionMoveTo(0.5, 400, 100) -- 从下方移动到上方
local delay = GUI:DelayTime(2) -- 停留2秒
local fadeOut = GUI:ActionFadeTo(0.5, 0) -- 淡出消失
local remove = GUI:CallFunc(function()
GUI:removeFromParent(parent)
end)
local sequence = GUI:ActionSequence(moveUp, delay, fadeOut, remove)
GUI:runAction(richText, sequence)
end
end)
end
```
**代码说明:**
1. **创建父窗口**:使用`GUI:Win_Create`创建透明父窗口作为容器
2. **创建富文本**:使用`GUI:RichText_Create`创建带绿色描边的文本
3. **初始位置**:设置文本初始位置在屏幕下方(y坐标为负值)
4. **动作序列**:
- `GUI:ActionMoveTo(0.5, 400, 100)`:0.5秒内从下方移动到屏幕上方
- `GUI:DelayTime(2)`:停留2秒
- `GUI:ActionFadeTo(0.5, 0)`:0.5秒内淡出
- `GUI:CallFunc`:动画完成后移除控件
5. **总时间**:0.5秒(弹出)+ 2秒(停留)+ 0.5秒(消失)= 3秒
**注意:**
- 坐标值(400, 100)需要根据实际屏幕分辨率调整
- 使用`GUI:ActionFadeTo`前确保控件已设置不透明度
- 动画完成后必须调用`GUI:removeFromParent`清理资源
这样修改后,系统提示就会从屏幕下方弹出到上方,停留一段时间后消失,总时长约为3秒。
← 返回问答库