无法访问Roblox TextBox

时间:2017-02-07 00:23:13

标签: lua roblox

每当我尝试在robloxian lua中执行这组代码时,我都无法访问文本框。这个代码是支持这样做的,但我认为它访问文本框内的文本属性。这是我正在使用的代码的一些代表。所以,让我们说鲍勃想和约翰谈谈。我会这样写的。

game.StarterGui.ScreenGui.Frame.JohnsSpeech.Text = game.StarterGui.ScreenGui.Frame.JohnsUserSetText.Text

现在,JohnsUserSetText是文本框,JohnsSpeech是演讲。但是当我尝试这样做时,它并没有起作用。它只是说出属性中的文本。任何帮助,将不胜感激。谢谢!今天休息一下!

2 个答案:

答案 0 :(得分:1)

应该做什么? .Text是文本框或类似内容的属性

注意:你正在改变一个初学者gui,这意味着任何使用当前gui的人都不会得到更新的gui,直到他们死亡和重生。如果你想更新GUI中的那个,请通过Game.Players.playernamehere.PlayerGui访问它

StarterGui是游戏在重新加载所有内容时导入玩家的行为:重生或加入

如果你需要更新每个玩家的提示,Gui告诉我,我可以提供一些例子

答案 1 :(得分:0)

正如M. Ziegenhorn所说,你的问题是你指的是StarterGui,而不是PlayerGui。

StarterGui是包含在产生时给予玩家的默认GUI的容器,而PlayerGui(例如game.Players.Ravenshield.PlayerGui)是为每个玩家存储GUI的地方。 只能通过LocalScript访问PlayerGui。

访问PlayerGui的最简单方法显然是将LocalScript放在您正在使用的ScreenGui中。 否则,你也可以通过game.Players.LocalPlayer.PlayerGui

轻松访问它

如果我将我的LocalScript直接放在我们正在使用的ScreenGui中,它可能看起来像这样:

local TextBox = script.Parent.TextBox
local SpeechLabel = script.Parent.SpeechLabel

SpeechLabel.Text = TextBox.Text

但是,您可能希望在将文本写入TextBox时添加文本。然后我们需要看看ROBLOX的文档,特别是TextBox Object

如果向下滚动到“事件”,则可以查看TextBox.Changed事件。每次TextBox的属性发生更改时,都会触发此操作。 我们也可以使用TextBox.FocusLost,当客户端没有聚焦TextBox时会触发它。该活动提供了一个布尔' enterPressed'它告诉我们客户是否按下了输入以失去焦点。

local TextBox = script.Parent.TextBox
local SpeechLabel = script.Parent.SpeechLabel

TextBox.FocusLost:Connect(function(enterPressed)
  if enterPressed then -- Checking if the enterPressed is true and not nil
    -- The user must have pressed enter to exit the TextBox.
    -- Could mean that they're done writing something.
    SpeechLabel.Text = TextBox.Text
  end
end)

必须使用:Connect方法绑定所有事件。这就是告诉ROBLOX开始聆听'对于事件,确保每次发生时该函数都会触发。