local function zhuanpan(msgID, msgData)
local screenWidth = SL:GetMetaValue("SCREEN_WIDTH", 0)
local screenHeight = SL:GetMetaValue("SCREEN_HEIGHT", 0)
local parent = GUI:Win_Create("zhuanpan", 0, 0, 0, 0, false, false, true, false, false, false, 1
🤖 回答引擎: 前端Lua |
🕒 时间: 2026-04-20 11:29:34 |
👁️ 阅读: 11
要让你的转盘界面居中显示,并且让特效保持居中铺满全屏,你需要调整界面容器和全屏动画的定位方式。根据你提供的代码,主要问题是**全屏动画**和**界面容器**的锚点设置。
以下是修改后的代码,重点调整了`layout`容器和`fullScreenAnim`动画的锚点和位置:
```lua
local function zhuanpan(msgID, msgData)
local screenWidth = SL:GetMetaValue("SCREEN_WIDTH", 0)
local screenHeight = SL:GetMetaValue("SCREEN_HEIGHT", 0)
local parent = GUI:Win_Create("zhuanpan", 0, 0, 0, 0, false, false, true, false, false, false, 1)
-- 全屏动画 - 居中显示
local fullScreenAnim = GUI:Frames_Create(
parent,
"FullScreenFrames",
screenWidth/2, -- X坐标设为屏幕中心
screenHeight/2, -- Y坐标设为屏幕中心
"res/public/word_fubentg_",
".png",
1,
10,
{speed = 100, count = 10, loop = -1}
)
GUI:setAnchorPoint(fullScreenAnim, 0.5, 0.5) -- 锚点设为中心
GUI:setContentSize(fullScreenAnim, screenWidth, screenHeight)
GUI:setIgnoreContentAdaptWithSize(fullScreenAnim, false)
-- 创建内容容器 - 居中显示
local layout = GUI:Layout_Create(parent, "layout", screenWidth/2, screenHeight/2, 900, 500)
if layout then
GUI:setAnchorPoint(layout, 0.5, 0.5) -- 关键:设置容器锚点为中心
GUI:setTouchEnabled(layout, true)
end
-- 背景图 - 居中显示
local bg_kuang = GUI:Image_Create(layout, "bg_kuang", 450, 250, "res/01/010011.jpg")
if bg_kuang then
GUI:setAnchorPoint(bg_kuang, 0.5, 0.5)
GUI:setContentSize(bg_kuang, {width = 900, height = 500})
end
GUI:Win_SetMainHide(parent, true)
-- 加载UI布局
GUI:LoadExport(parent, "zhuanpan")
local ui = GUI:ui_delegate(parent)
end
```
**关键修改点:**
1. **全屏动画居中**:
- 位置设为`(screenWidth/2, screenHeight/2)`
- 锚点设为`(0.5, 0.5)`
- 这样动画会以屏幕中心为基准点显示
2. **内容容器居中**:
- 创建`layout`容器时,位置设为屏幕中心
- 设置`GUI:setAnchorPoint(layout, 0.5, 0.5)`让容器以中心为锚点
- 这样容器内的所有子控件都会相对于屏幕中心布局
3. **背景图居中**:
- 背景图的位置设为容器的一半宽高`(450, 250)`
- 设置锚点为`(0.5, 0.5)`确保居中
**效果说明:**
- `fullScreenAnim`会铺满全屏并居中显示
- `layout`容器会在屏幕中心显示
- 容器内的所有UI元素都会相对于容器中心布局
如果你想让整个界面有全屏关闭功能,可以参考浮生梦老师前端课程中的做法,在`parent`上添加一个全屏的透明布局作为关闭区域。
← 返回问答库