如何访问文本框中用户键入的文本以使其成为变量? (罗布乐思)

How to access user typed text inside a text box to make it as a variable? (Roblox)

所以,我想制作一个转换器 GUI,将比特币转换为美元。我使用一个文本框来获取用户输入和一个文本按钮来提交。但是,当我在测试游戏时向文本框输入数字(例如 8)并打印文本框内的内容时,它什么也没打印。即使我在文本框中输入了 8。感谢所有的答案!这是我使用的代码。

-- text variable below

local input = script.Parent
local val = input.Text

-- button variable below

local submit = input:FindFirstChild("btcSubmit")


-- player variable below

local gams = game.Players.LocalPlayer
local ld = gams:WaitForChild("leaderstats")
local bitcoin = ld:WaitForChild("Bitcoin").Value
local dollar = ld:WaitForChild("Dollar").Value

-- function

function btcEx()
    val = tonumber(val)
    if val > bitcoin then
        val = tostring(val)
        val = "Sorry, your Bitcoin isn't enough"
        wait(4)
        val = "Input the number of bitcoin you want to exchange here!"
    else
        dollar = val * 8000
        val = tostring()
    end
end

submit.MouseButton1Click:Connect(btcEx)

当您将变量设置为一个值而不是一个引用时,它会一直保持该值直到您更改它。

object.Value = 5
local myValue = object.Value
object.Value = 10
print(myValue) -- Prints 5.

发生这种情况是因为它们没有链接,因此更改不会延续,如下面的这些变量:

local a = 5
local b = a
a = 10
print(b) -- Prints 5, because b was never changed (but a was).

您要做的是将按钮和值对象定义为引用,并在需要读取值时访问 .Text 或 .Value。

local myButton = button
button.Text = "Howdy!"
print(myButton.Text) -- Prints "Howdy!"
myButton.Text = "Hey there" -- this is the same as button.Text
print(myButton.Text) -- Prints "Hey there"