📜  roblox 按钮在滚动框架外可见 (1)

📅  最后修改于: 2023-12-03 15:34:44.144000             🧑  作者: Mango

Roblox按钮在滚动框架外可见

当我们需要在一个滚动框架内放置按钮时,有时候会遇到一个棘手的问题:按钮被滚动框架的边缘给隐藏了,导致用户无法看到或者操作。

本篇介绍了一种解决此问题的方法:使用 ViewportFramesGuiObjects 来实现一个外部按钮。该方法可以确保按钮始终在滚动框架的可见区域内,而不管滚动框架的大小和滚动位置如何。

步骤
  1. 首先,在你的游戏中创建一个 Frame 并将其属性设置为如下:

    Frame.Size = UDim2.new(1, 0, 1, 0)
    Frame.BackgroundTransparency = 1
    

    这个frame将占据整个屏幕,并且没有任何背景。我们将在其中创建 ViewportFramesGuiObjects

  2. 接下来,创建一个 ViewportFrame 并将其属性设置为如下:

    ViewportFrame.Size = UDim2.new(1, 0, 1, 0)
    ViewportFrame.BackgroundTransparency = 1
    ViewportFrame.ScrollingEnabled = true
    ViewportFrame.Active = true
    

    这个 ViewportFrame 将会被用做你的滚动框架。

  3. ViewportFrame 中创建你的按钮,并将其属性设置为如下:

    Button.AnchorPoint = Vector2.new(0.5, 0.5)
    Button.Position = UDim2.new(0.5, 0, 0.5, 0)
    

    注意,这个按钮的 AnchorPoint 必须为 (0.5, 0.5),因为我们需要将其放置在 ViewportFrame 的中心。

  4. 接下来,在 Frame 中创建一个新的 GuiObject 并将其属性设置为如下:

    GuiObject.Size = UDim2.new(1, -15, 1, -15)
    GuiObject.Position = UDim2.new(0, 7, 0, 7)
    GuiObject.BackgroundTransparency = 1
    

    注意,这个 GuiObject 的大小要比 ViewportFrame 小一些,以便让我们留下一定的间距用于放置一个滑动条。

  5. GuiObject 中创建一个新的 ScrollingFrame 并将其属性设置为如下:

    ScrollingFrame.AnchorPoint = Vector2.new(0, 0)
    ScrollingFrame.Size = UDim2.new(1, 0, 1, 0)
    ScrollingFrame.BackgroundTransparency = 1
    ScrollingFrame.ScrollingEnabled = true
    ScrollingFrame.BorderSizePixel = 0
    ScrollingFrame.CanvasSize = UDim2.new(0, 0, 0, 400)
    

    注意,这个 ScrollingFrameAnchorPoint 必须为 (0, 0),因为我们需要将其放置在 GuiObject 的左上角。

  6. ViewportFrame 放置在 ScrollingFrame 中:

    ViewportFrame.Parent = ScrollingFrame
    
  7. 最后,将这个 GuiObject 放置在 Frame 中:

    GuiObject.Parent = Frame
    

    这样,我们就创建了一个外部的按钮,你可以用鼠标或手指拖动滚动框架,而按钮也会持续可见。

结论

使用 ViewportFramesGuiObjects 可以解决滚动框架内部按钮被遮挡的问题。我们使用 ViewportFrame 来创建滚动框架,将它放在 GuiObject 中以便留出一定的间距。最后,在 ViewportFrame 内创建按钮,并始终将其显示在 GuiObject 的可见范围内。

这种方法可以确保在不同大小和滚动位置的滚动框架中,按钮都能正常显示。