当它应该出现时框架没有出现......(ROBLOX GUI)

Posted

技术标签:

【中文标题】当它应该出现时框架没有出现......(ROBLOX GUI)【英文标题】:Frame not appearing when it is supposed to... (ROBLOX GUI) 【发布时间】:2021-03-08 21:22:27 【问题描述】:

我正在制作一个允许您创建远程操作系统的 Os 模块,但是当背景框架加载到新窗口中时,只会加载一个随机窗口,但它基本上会被背景框架“覆盖”。

我有一个关于脚本助手的帖子:https://scriptinghelpers.org/questions/116285/instancenew-but-not-working-as-expected-module

但似乎没有人希望网站上没有人知道该怎么做

我的主要操作系统模块代码:

local module = 

function module.__Version__()
    local ROS = '1.00'
    local ROS = tostring(ROS)
    print('Version: '..ROS)
end


function module.create_environment(master)
    local main = Instance.new('ScreenGui',master)
    main.Name = ("ROS")
    return(main)
end


function module.create_background(env)
    local Frame = Instance.new('Frame',env)
    Frame.Name = ('Background')
    Frame.Size = UDim2.new(2,0,2,0)
    Frame.Position = UDim2.new(0, 0,-0.5, 0)
    Frame.BackgroundColor3 = Color3.new(0.337255, 0.290196, 1)
    return(Frame)

end


function module.create_taskbar(env)
    local main = Instance.new("Frame",env)
    main.BackgroundColor3 = Color3.new(0, 0, 0)
    main.Size = UDim2.new(2, 0,0, 45)
    main.Position = UDim2.new(-0.5, 0,1, -45)

    return(main)
end


function module.create_app_button(icon,env,X,Y)
    local Btn = Instance.new('ImageButton',env)
    Btn.Image = (tostring(icon))
    Btn.Size = UDim2.new(0, 49,0, 49)
    Btn.Position = UDim2.new(0, tonumber(X), 0, tonumber(Y))

    return(Btn)
end


function module.create_clone_env(env)
    local coloned_env = env:Clone()
    coloned_env.Parent = env.Parent
end



function module.create_time_gui(env)
    local main = Instance.new('TextLabel',env)
    main.Size = UDim2.new(0, 115,0, 41)
    main.Position = UDim2.new(1, -145,1, -44)
    main.TextColor3 = Color3.new(1, 1, 1)
    main.BackgroundTransparency = 1
    main.TextScaled = true
    main.Font = Enum.Font.Ubuntu

    local assetId = 5990705305
    local InsertService = game:GetService("InsertService")
    local model = InsertService:LoadAsset(assetId)
    model.Time_Manager.Parent = main

    return(main)
end


function module.create_start_button(env)
    local main_button = Instance.new('TextButton',env)
    main_button.Size = UDim2.new(0, 146,0, 45)
    main_button.Position = UDim2.new(0, 0,1, -44)
    main_button.TextColor3 = Color3.new(0, 0, 0)
    main_button.Text = "Start"
    main_button.TextSize = 25
    main_button.Font = Enum.Font.Arial
    main_button.BorderSizePixel = 0

    return(main_button)
end


function module.create_app(env)
    local frame = Instance.new('Frame',env)
    local round = Instance.new("UICorner",frame)
    local top_frame = Instance.new('Frame',frame)
    local exit_button = Instance.new('TextButton',top_frame)
    local assetId = 5995055509
    local InsertService = game:GetService("InsertService")
    local model = InsertService:LoadAsset(assetId)
    round.CornerRadius = UDim.new(0,20)

    frame.Size = UDim2.new(0, 1084,0, 673)
    frame.Position = UDim2.new(0.5, -542,0.5, -336)
    frame.BackgroundColor3 = Color3.new(1, 1, 1)

    top_frame.Size = UDim2.new(1, 0,0.003, 28)
    top_frame.Position = UDim2.new(0, 0,0, 0)
    top_frame.BackgroundColor3 = Color3.new(0.611765, 0.611765, 0.611765)
    top_frame.BorderSizePixel = 0

    exit_button.Size = UDim2.new(0, 74,0, 30)
    exit_button.Position = UDim2.new(1, -74,0.5, -15)
    exit_button.Text = ("X")
    exit_button.BorderSizePixel = 0
    exit_button.TextColor3 = Color3.new(1, 1, 1)
    exit_button.BackgroundColor3 = Color3.new(1, 0, 0)
    exit_button.TextStrokeTransparency = 0
    exit_button.TextSize = 17

    model.LocalScript.Parent = exit_button
    model:Destroy()


    return(frame)
end     




return module

一切正常; create_taskbar(),create_time_gui(),create_start_button() 但它只是create_app()

这是我的操作系统模块所做的:

这是我的操作系统模块制作的操作系统:

正如我所说,背景会覆盖我的create_app() 有没有办法防止这种情况发生?

【问题讨论】:

快捷方式:scriptinghelpers.org/questions/116285/… 【参考方案1】:

如果维护元素层次结构很重要,请尝试调整背景框架和应用程序的ZIndex,以使两者不会为哪个出现在顶部而争吵。 ZIndex 数字较小的元素将首先呈现,这意味着它们将出现在具有较大数字的元素之后。

function module.create_background(env)
    local Frame = Instance.new('Frame',env)
    Frame.ZIndex = 1
    -- <a bunch of other code>

    return Frame
end

然后让应用的 ZIndex 更高。

function module.create_app(env)
    local frame = Instance.new('Frame', env)
    frame.ZIndex = 2
    -- <a bunch of other code>

    return frame
end

但是你应该小心。使用 ZIndices 会很快变得非常混乱。更好的选择是将应用框架的父级设置为背景框架。

【讨论】:

您的代码适用于服务器端,但对于客户端它没有做之前没有显示之前所做的事情

以上是关于当它应该出现时框架没有出现......(ROBLOX GUI)的主要内容,如果未能解决你的问题,请参考以下文章

当它不应该用Java时,它会变成180

当它出现时打开 /dev/ttyUSB*

Xcode 分发失败并出现错误:框架未包含在正确命名的目录中。它应该在“框架”下[关闭]

vue的computed如果没有出现在模板里面,当它依赖的响应式属性发生变化,getter会触发吗?

vue的computed如果没有出现在模板里面,当它依赖的响应式属性发生变化,getter会触发吗?

vue的computed如果没有出现在模板里面,当它依赖的响应式属性发生变化,getter会触发吗?