SL:print("打开新服活跃界面")
local npc = {}
npc.activityData = {
-- 第1个按钮:激情泡点
{
title = "激情泡点",
text = {"活动时间:开区30分钟开启。",
"活动介绍:场地内有4个普通光圈、1个超级光圈,占领光圈可获得大量经验和大量元宝,活动持续时间5分钟。"},
drops = {"大量元宝", "大量元宝", "海量经验", "海量经
🤖 回答引擎: 前端Lua |
🕒 时间: 2026-04-29 00:42:57 |
👁️ 阅读: 8
要让文本自动换行,可以使用浮生梦老师前端课程中提到的`CommonSelectList._autoNext`参数和相关的布局处理方式。不过在你的代码中,需要针对具体的文本控件进行设置。
在你的`npc:openWin()`函数里,当设置活动描述文本时,可以这样修改:
```lua
function npc:openWin()
-- 创造外部界面
local win_newGActive = GUI:Win_Create("win_newGActive", 0, 0, 0, 0)
GUI:LoadExport(win_newGActive, "newGActive")
npc.ui = GUI:ui_delegate(win_newGActive)
GUI:addOnClickEvent(npc.ui.esc, function()
GUI:Win_Close(win_newGActive)
end)
GUI:Timeline_MoveBy(npc.ui.Panel_leftBtn, {x = 420, y = 0}, 0.25, function() end)
GUI:Timeline_MoveBy(npc.ui.Panel_rightText, {x = -900, y = 0}, 0.25, function() end)
local selectBtn = nil -- 左侧按钮变量
-- 设置文本自动换行
GUI:Text_setLineBreakWithoutSpace(npc.ui.Text_1, true)
GUI:Text_setLineBreakWithoutSpace(npc.ui.Text_2, true)
-- 设置文本宽度(根据你的布局调整这个值)
local textWidth = 300 -- 设置一个合适的宽度
GUI:Text_setContentSize(npc.ui.Text_1, textWidth, 0)
GUI:Text_setContentSize(npc.ui.Text_2, textWidth, 0)
for i = 1, 3 do
local btn = GUI:getChildByName(npc.ui.Panel_leftBtn, "btn_" .. i)
-- 界面默认第一个按钮绿色
if i == 1 then
GUI:Button_setTitleColor(btn, "#00ff00")
selectBtn = btn
-- 默认显示第一个活动的内容
GUI:Text_setString(npc.ui.active_title, npc.activityData[i].title)
GUI:Text_setTextColor(npc.ui.active_title, "#EBEB00")
GUI:Text_enableOutline(npc.ui.active_title, "#000000", 1)
GUI:Text_setFontSize(npc.ui.active_title, 24)
GUI:Text_setString(npc.ui.Text_1, npc.activityData[i].text[1])
GUI:Text_setTextColor(npc.ui.Text_1, "#E300C3")
GUI:Text_enableOutline(npc.ui.Text_1, "#0000D5", 1)
GUI:Text_setFontSize(npc.ui.Text_1, 18)
GUI:Text_setString(npc.ui.Text_2, npc.activityData[i].text[2])
GUI:Text_setTextColor(npc.ui.Text_2, "#E300C3")
GUI:Text_enableOutline(npc.ui.Text_2, "#0000D5", 1)
GUI:Text_setFontSize(npc.ui.Text_2, 18)
GUI:Button_setTitleText(npc.ui.goto_btn, npc.activityData[i].status)
GUI:Button_setTitleColor(npc.ui.goto_btn, "#0000cd")
GUI:Button_titleEnableOutline(npc.ui.goto_btn, "#FFFF00", 1)
else
GUI:Button_setTitleColor(btn, "#ffffff")
end
GUI:addOnClickEvent(btn, function()
-- 点击按钮变为绿色
if selectBtn and not GUI:Win_IsNull(selectBtn) then
GUI:Button_setTitleColor(selectBtn, "#ffffff")
end
GUI:Button_setTitleColor(btn, "#27ff00")
selectBtn = btn
GUI:Text_setString(npc.ui.active_title, npc.activityData[i].title)
GUI:Text_setTextColor(npc.ui.active_title, "#EBEB00")
GUI:Text_enableOutline(npc.ui.active_title, "#000000", 1)
GUI:Text_setFontSize(npc.ui.active_title, 24)
GUI:Text_setString(npc.ui.Text_1, npc.activityData[i].text[1])
GUI:Text_setTextColor(npc.ui.Text_1, "#E300C3")
GUI:Text_enableOutline(npc.ui.Text_1, "#0000D5", 1)
GUI:Text_setFontSize(npc.ui.Text_1, 18)
GUI:Text_setString(npc.ui.Text_2, npc.activityData[i].text[2])
GUI:Text_setTextColor(npc.ui.Text_2, "#E300C3")
GUI:Text_enableOutline(npc.ui.Text_2, "#0000D5", 1)
GUI:Text_setFontSize(npc.ui.Text_2, 18)
GUI:Button_setTitleText(npc.ui.goto_btn, npc.activityData[i].status)
GUI:Button_setTitleColor(npc.ui.goto_btn, "#0000cd")
GUI:Button_titleEnableOutline(npc.ui.goto_btn, "#FFFF00", 1)
end)
end
end
```
关键点:
1. `GUI:Text_setLineBreakWithoutSpace(widget, true)` - 启用自动换行
2. `GUI:Text_setContentSize(widget, width, height)` - 设置文本控件的宽度,文本会根据这个宽度自动换行
3. 高度设置为0或适当值,文本会自动计算需要的高度
这样设置后,当文本内容超过设定的宽度时,就会自动换到下一行显示。
← 返回问答库