每当我尝试在robloxian lua中执行这组代码时,我都无法访问文本框。这个代码是支持这样做的,但我认为它访问文本框内的文本属性。这是我正在使用的代码的一些代表。所以,让我们说鲍勃想和约翰谈谈。我会这样写的。
game.StarterGui.ScreenGui.Frame.JohnsSpeech.Text = game.StarterGui.ScreenGui.Frame.JohnsUserSetText.Text
现在,JohnsUserSetText是文本框,JohnsSpeech是演讲。但是当我尝试这样做时,它并没有起作用。它只是说出属性中的文本。任何帮助,将不胜感激。谢谢!今天休息一下!
答案 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开始聆听'对于事件,确保每次发生时该函数都会触发。