我正在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)
在该功能中,淡出发生。
感谢您的进阶,
杰西
答案 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)
该帖子已取消,因为我为“播放”按钮提出了新的想法。
非常感谢您,我真的很抱歉,
杰西