Roblox Studio:框架不褪色

时间:2018-12-19 15:33:39

标签: button roblox

我正在Roblox Studio中制作一个主菜单。当我按播放时,它会向下移动,但背景不会消失。

这是我的代码:

--Define variables

local button = script.Parent
local frame = button.Parent

local function fadeOut(object)
for newTrans = 0, 1, 0.1 do
        wait(0.1)
        object.BackgroundTransparency = newTrans
    end
end

button.MouseButton1Click:Connect(function()

--Get positions
local xScale = button.Position.X.Scale
local yScale = -1
local xOffset = button.Position.X.Offset
local yOffset = button.Position.Y.Offset

--New position
local newPos = UDim2.new(xScale, xOffset, yScale, yOffset)

--Indicate when the tweening is finished
local done = false

local function ended()
    done = true
end

--Tween button
button:TweenPosition(newPos, "Out", "Quad", 1, true, ended)

--Wait for tweening
repeat
    wait(0.1)
until done

    --Fade out the frame
    fadeOut(frame)
end)

淡出的代码在顶部显示:局部函数fadeOut(object)

在该功能中,淡出发生。

感谢您的进阶,

杰西

2 个答案:

答案 0 :(得分:0)

如果补间完成后有一个回调函数要调用,为什么不在fadeOut函数中调用ended

-- Tween button
local allowOverride = false
button:TweenPosition(newPos, "Out", "Quad", 1, allowOverride, function()

    local frame = button.Parent
    print("Finished tweening button. Fading out ", frame.Name)

    -- next, tween the transparency
    fadeOut(frame)

    print("Done fading out , " frame.Name)
end)

您提供的代码示例正在传递true到allowOverride。根据{{​​3}},这可能允许另一个补间动画正在动画该位置以取消按钮的TweenPosition调用,这将阻止ended()被调用。这样循环就永远不会结束。

希望这对您有帮助!

答案 1 :(得分:0)

该帖子已取消,因为我为“播放”按钮提出了新的想法。

非常感谢您,我真的很抱歉,

杰西