TextLabel

显示已弃用

*此内容使用人工智能(Beta)翻译,可能包含错误。若要查看英文页面,请点按 此处

一个 TextLabel 会生成一个长方形,例如 Frame ,具有造型的文本。长方形可用于定义文本边界、文本缩放 ( TextLabel.TextScaled ) 和包装 ( TextLabel.TextWrapped 、 1> Class.TextLabel.TextYAlignment1> 和

此类包含控制文本显示的属性,例如 TextLabel.FontTextLabel.TextColor3 。 所有通过单个文本标签渲染的文本都会有相同的视觉属性;多个文本标签对象必须使用在多个文本样式的渲染。要显示仅文本并隐藏右边,请将 Class.

TextService:GetTextSize() 可用于获取在 TextLabel 中给予字体大小、字体、框架大小的文本的大小(边界)。

一个 UITextSizeConstraint 对象可以用来限制文本的大小,并且有 TextLabel.TextScaled 启用。 建议文本的大小不小于 9,否则它可能无法对大多数用户可见。

代码示例

Countdown Text

-- Place this code in a LocalScript within a TextLabel/TextButton
local textLabel = script.Parent
-- Some colors we'll use with TextColor3
local colorNormal = Color3.new(0, 0, 0) -- black
local colorSoon = Color3.new(1, 0.5, 0.5) -- red
local colorDone = Color3.new(0.5, 1, 0.5) -- green
-- Loop infinitely
while true do
-- Count backwards from 10 to 1
for i = 10, 1, -1 do
-- Set the text
textLabel.Text = "Time: " .. i
-- Set the color based on how much time is left
if i > 3 then
textLabel.TextColor3 = colorNormal
else
textLabel.TextColor3 = colorSoon
end
task.wait(1)
end
textLabel.Text = "GO!"
textLabel.TextColor3 = colorDone
task.wait(2)
end
Game State Text

local ReplicatedStorage = game:GetService("ReplicatedStorage")
-- Place a StringValue called "GameState" in the ReplicatedStorage
local vGameState = ReplicatedStorage:WaitForChild("GameState")
-- Place this code in a TextLabel
local textLabel = script.Parent
-- Some colors we'll use with TextColor3
local colorNormal = Color3.new(0, 0, 0) -- black
local colorCountdown = Color3.new(1, 0.5, 0) -- orange
local colorRound = Color3.new(0.25, 0.25, 1) -- blue
-- We'll run this function to update the TextLabel as the state of the
-- game changes.
local function update()
-- Update the text
textLabel.Text = "State: " .. vGameState.Value
-- Set the color of the text based on the current game state
if vGameState.Value == "Countdown" then
textLabel.TextColor3 = colorCountdown
elseif vGameState.Value == "Round" then
textLabel.TextColor3 = colorRound
else
textLabel.TextColor3 = colorNormal
end
end
-- Pattern: update once when we start and also when vGameState changes
-- We should always see the most updated GameState.
update()
vGameState.Changed:Connect(update)

概要

属性

继承自GuiObject属性继承自GuiBase2d属性

方法

继承自GuiObject方法

活动

继承自GuiObject活动继承自GuiBase2d活动

属性

ContentText

只读
未复制
读取并联

这个属性提供一个复制的 TextLabel.Text ,其中包含 TextLabel 正在渲染的内容。 这对于使用 Rich 文本的风格标签而言很有用。

例子

TextLabel.RichText 已启用时,TextLabel.ContentText 属性显示玩家所看到的文本。


<tbody>
<tr>
<td>否</td>
<td>\<b>你好,\<br/> 世界!\</b></td>
<td>\<b>你好,\<br/> 世界!\</b></td>
</tr>
<tr>
<td>真的</td>
<td>\<b>你好,\<br/> 世界!\</b></td>
<td>你好,世界!</td>
</tr>
</tbody>
丰富的文本文本内容文字
隐藏
未复制
读取并联

字体属性选择一个或多个预设字体,用户界面元素将使用它们来渲染其文本。一些字体有大写、标号和/或浅色变体(因为没有字体重量或字体风格属性)。

除了“传承”字体之外,每个字体都会以等同于 TextLabel.TextSize 属性的行高显示文本。 “代码”字体是唯一的单空格字体。它有一个独特的属性,每个角色都有完全相同的宽度和高度比例为 1:2。每个角色的宽度大约为 TextLabel.TextSize 属性。

此属性与 TextLabel.FontFace 属性保持同步。当设置字体时,字体面会设置为 Font.fromEnum(value)

代码示例

Cycle Font

local textLabel = script.Parent
while true do
-- Iterate over all the different fonts
for _, font in pairs(Enum.Font:GetEnumItems()) do
textLabel.Font = font
textLabel.Text = font.Name
task.wait(1)
end
end
Show All Fonts

local frame = script.Parent
-- Create a TextLabel displaying each font
for _, font in pairs(Enum.Font:GetEnumItems()) do
local textLabel = Instance.new("TextLabel")
textLabel.Name = font.Name
-- Set the text properties
textLabel.Text = font.Name
textLabel.Font = font
-- Some rendering properties
textLabel.TextSize = 24
textLabel.TextXAlignment = Enum.TextXAlignment.Left
-- Size the frame equal to the height of the text
textLabel.Size = UDim2.new(1, 0, 0, textLabel.TextSize)
-- Add to the parent frame
textLabel.Parent = frame
end
-- Layout the frames in a list (if they aren't already)
if not frame:FindFirstChildOfClass("UIListLayout") then
local uiListLayout = Instance.new("UIListLayout")
uiListLayout.Parent = frame
end

FontFace

读取并联

FontFace 属性与字体属性类似,但允许设置不存在在字体列表中的字体。

此属性与 TextLabel.Font 属性保持同步。当设置字体时,字体将设置到相应的枚列值,或者在 Enum.Font.Unknown 如果没有匹配。

LineHeight

读取并联

通过在 TextLabel 中调整字体的大小来控制行高,作为多个字体字体大小的倍数,例如将文本中的空格间隔调整为 1 倍。默认值为 1.0 到 3.0,默认为 1.0。

LocalizedText

隐藏
只读
未复制
读取并联

此属性设置是否要将 TextLabel 作为 GuiBase2d.Localize 或不作为。

MaxVisibleGraphemes

读取并联

这个属性控制显示在 TextLabel 上的最大图形数量(或文本单位)。它主要提供为“打字机效果”,在该角色一次显示。

改变属性不会改变可见的图形的位置或大小 - 布局将以所有图形都可见的假设计计算。

将属性设置为 -1 会禁用限制,并且显示整个 TextLabel.Text

代码示例

Typewriter Effect with MaxVisibleGraphemes

local TweenService = game:GetService("TweenService")
local textObject = script.Parent
local tweenInfo = TweenInfo.new(
4, -- it takes 4 seconds for the effect to complete
Enum.EasingStyle.Sine, -- typing starts fast and slows near the end
Enum.EasingDirection.Out
)
local tween = TweenService:Create(textObject, tweenInfo, {
-- Final value should be the total grapheme count
MaxVisibleGraphemes = utf8.len(textObject.ContentText),
})
tween:Play()
tween.Completed:Wait()
-- Reset the value so it can be tweened again
textObject.MaxVisibleGraphemes = -1

OpenTypeFeatures

读取并联

OpenTypeFeaturesError

只读
未复制
读取并联

RichText

读取并联

这个属性决定 whether the TextLabel 使用丰富的文本格式渲染 TextLabel.Text 字符。 丰富的文本使用 simple markup 标签来式定义字符的段落在 bold, italics, 指定颜色等方面。

要使用丰富的文本,请在 TextLabel.Text 字符串中包含格式标签。

Text

读取并联

文本属性确定UI元素的内容。 视觉属性由 TextLabel.TextColor3TextLabel.TextTransparency

您可以渲染表情符号(例如, 😃) 和其他符号. 这些特殊符号不受 TextLabel.TextColor3 属性的影响. 它们可以被粘贴到 ScriptLocalScript 对象, 以及在属性窗口中的田.

这个属性可能包含新行字符,但它不能在属性窗口中输入新行字符。同样,这个属性可能包含一个Tab字符,但它将以空格而不是作为输入表示。

代码示例

Fading Banner

local TweenService = game:GetService("TweenService")
local textLabel = script.Parent
local content = {
"Welcome to my game!",
"Be sure to have fun!",
"Please give suggestions!",
"Be nice to other players!",
"Don't grief other players!",
"Check out the shop!",
"Tip: Don't die!",
}
local tweenInfo = TweenInfo.new(1, Enum.EasingStyle.Sine, Enum.EasingDirection.InOut)
local RNG = Random.new()
local fadeIn = TweenService:Create(textLabel, tweenInfo, {
TextTransparency = 0,
})
local fadeOut = TweenService:Create(textLabel, tweenInfo, {
TextTransparency = 1,
})
local lastIndex
while true do
-- Step 0: Fade out before doing anything
fadeOut:Play()
task.wait(tweenInfo.Time)
-- Step 1: pick content that wasn't the last displayed
local index
repeat
index = RNG:NextInteger(1, #content)
until lastIndex ~= index
-- Make sure we don't show the same thing next time
lastIndex = index
-- Step 2: show the content
textLabel.Text = content[index]
fadeIn:Play()
task.wait(tweenInfo.Time + 1)
end
"Kaboom!" Text

local textLabel = script.Parent
textLabel.Text = "Kaboom!"
while true do
for size = 5, 100, 5 do
textLabel.TextSize = size
textLabel.TextTransparency = size / 100
task.wait()
end
task.wait(1)
end
Show All Fonts

local frame = script.Parent
-- Create a TextLabel displaying each font
for _, font in pairs(Enum.Font:GetEnumItems()) do
local textLabel = Instance.new("TextLabel")
textLabel.Name = font.Name
-- Set the text properties
textLabel.Text = font.Name
textLabel.Font = font
-- Some rendering properties
textLabel.TextSize = 24
textLabel.TextXAlignment = Enum.TextXAlignment.Left
-- Size the frame equal to the height of the text
textLabel.Size = UDim2.new(1, 0, 0, textLabel.TextSize)
-- Add to the parent frame
textLabel.Parent = frame
end
-- Layout the frames in a list (if they aren't already)
if not frame:FindFirstChildOfClass("UIListLayout") then
local uiListLayout = Instance.new("UIListLayout")
uiListLayout.Parent = frame
end
Long Text Wrapping

local textLabel = script.Parent
-- This text wrapping demo is best shown on a 200x50 px rectangle
textLabel.Size = UDim2.new(0, 200, 0, 50)
-- Some content to spell out
local content = "Here's a long string of words that will "
.. "eventually exceed the UI element's width "
.. "and form line breaks. Useful for paragraphs "
.. "that are really long."
-- A function that will spell text out two characters at a time
local function spellTheText()
-- Iterate from 1 to the length of our content
for i = 1, content:len() do
-- Get a substring of our content: 1 to i
textLabel.Text = content:sub(1, i)
-- Color the text if it doesn't fit in our box
if textLabel.TextFits then
textLabel.TextColor3 = Color3.new(0, 0, 0) -- Black
else
textLabel.TextColor3 = Color3.new(1, 0, 0) -- Red
end
-- Wait a brief moment on even lengths
if i % 2 == 0 then
task.wait()
end
end
end
while true do
-- Spell the text with scale/wrap off
textLabel.TextWrapped = false
textLabel.TextScaled = false
spellTheText()
task.wait(1)
-- Spell the text with wrap on
textLabel.TextWrapped = true
textLabel.TextScaled = false
spellTheText()
task.wait(1)
-- Spell the text with text scaling on
-- Note: Text turns red (TextFits = false) once text has to be
-- scaled down in order to fit within the UI element.
textLabel.TextScaled = true
-- Note: TextWrapped is enabled implicitly when TextScaled = true
--textLabel.TextWrapped = true
spellTheText()
task.wait(1)
end
Emoji in Text

local textLabel = script.Parent
local moods = {
["happy"] = "😃",
["sad"] = "😢",
["neutral"] = "😐",
["tired"] = "😫",
}
while true do
for mood, face in pairs(moods) do
textLabel.Text = "I am feeling " .. mood .. "! " .. face
task.wait(1)
end
end

TextBounds

只读
未复制
读取并联

只读属性 TextBounds 将在 Offsets 中反射所需的最小文本尺寸。 在其他 words 中,如果您尝试将文本放在长方形中,这个属性将反射您需要在长方形中才能正确处理文本的最小尺寸。

使用 TextService:GetTextSize() ,您可以预测 TextBounds 将在指定的 TextLabe字符串 上, TextLabel.FontTextLabel.TextSize 和框架大小。

代码示例

Dynamic TextBox Size

local textBox = script.Parent
-- The smallest the TextBox will go
local minWidth, minHeight = 10, 10
-- Set alignment so our text doesn't wobble a bit while we type
textBox.TextXAlignment = Enum.TextXAlignment.Left
textBox.TextYAlignment = Enum.TextYAlignment.Top
local function updateSize()
textBox.Size = UDim2.new(0, math.max(minWidth, textBox.TextBounds.X), 0, math.max(minHeight, textBox.TextBounds.Y))
end
textBox:GetPropertyChangedSignal("TextBounds"):Connect(updateSize)

TextColor3

读取并联

这个属性确定所有由 GUI 元素渲染的文本的颜色。 此属性与 TextLabel.FontTextLabel.TextSize 和 1> Class.TextLabel.Transparency1> 一起决定文本的视觉属性。 文本在

重要的是,文本必须易于阅读!请确保选择颜色具有小到无饱和度,例如白色、灰色或黑色。确保文本的颜色与 GUI 元素的背景颜色 TextLabel.BackgroundColor3 有一致。如果元素有透明背景,请尝试应用黑色 Class.TextLabel.TextStrokeColor3</

代码示例

Vowel Detector

local textBox = script.Parent
local function hasVowels(str)
return str:lower():find("[aeiou]")
end
local function onTextChanged()
local text = textBox.Text
-- Check for vowels
if hasVowels(text) then
textBox.TextColor3 = Color3.new(0, 0, 0) -- Black
else
textBox.TextColor3 = Color3.new(1, 0, 0) -- Red
end
end
textBox:GetPropertyChangedSignal("Text"):Connect(onTextChanged)
TextBox Secret Word

-- Place this code in a LocalScript inside a TextBox
local textBox = script.Parent
local secretWord = "roblox"
local colorNormal = Color3.new(1, 1, 1) -- white
local colorWrong = Color3.new(1, 0, 0) -- red
local colorCorrect = Color3.new(0, 1, 0) -- green
-- Initialize the state of the textBox
textBox.ClearTextOnFocus = true
textBox.Text = ""
textBox.Font = Enum.Font.Code
textBox.PlaceholderText = "What is the secret word?"
textBox.BackgroundColor3 = colorNormal
local function onFocused()
textBox.BackgroundColor3 = colorNormal
end
local function onFocusLost(enterPressed, _inputObject)
if enterPressed then
local guess = textBox.Text
if guess == secretWord then
textBox.Text = "ACCESS GRANTED"
textBox.BackgroundColor3 = colorCorrect
else
textBox.Text = "ACCESS DENIED"
textBox.BackgroundColor3 = colorWrong
end
else
-- The player stopped editing without pressing Enter
textBox.Text = ""
textBox.BackgroundColor3 = colorNormal
end
end
textBox.FocusLost:Connect(onFocusLost)
textBox.Focused:Connect(onFocused)
Countdown Text

-- Place this code in a LocalScript within a TextLabel/TextButton
local textLabel = script.Parent
-- Some colors we'll use with TextColor3
local colorNormal = Color3.new(0, 0, 0) -- black
local colorSoon = Color3.new(1, 0.5, 0.5) -- red
local colorDone = Color3.new(0.5, 1, 0.5) -- green
-- Loop infinitely
while true do
-- Count backwards from 10 to 1
for i = 10, 1, -1 do
-- Set the text
textLabel.Text = "Time: " .. i
-- Set the color based on how much time is left
if i > 3 then
textLabel.TextColor3 = colorNormal
else
textLabel.TextColor3 = colorSoon
end
task.wait(1)
end
textLabel.Text = "GO!"
textLabel.TextColor3 = colorDone
task.wait(2)
end
Game State Text

local ReplicatedStorage = game:GetService("ReplicatedStorage")
-- Place a StringValue called "GameState" in the ReplicatedStorage
local vGameState = ReplicatedStorage:WaitForChild("GameState")
-- Place this code in a TextLabel
local textLabel = script.Parent
-- Some colors we'll use with TextColor3
local colorNormal = Color3.new(0, 0, 0) -- black
local colorCountdown = Color3.new(1, 0.5, 0) -- orange
local colorRound = Color3.new(0.25, 0.25, 1) -- blue
-- We'll run this function to update the TextLabel as the state of the
-- game changes.
local function update()
-- Update the text
textLabel.Text = "State: " .. vGameState.Value
-- Set the color of the text based on the current game state
if vGameState.Value == "Countdown" then
textLabel.TextColor3 = colorCountdown
elseif vGameState.Value == "Round" then
textLabel.TextColor3 = colorRound
else
textLabel.TextColor3 = colorNormal
end
end
-- Pattern: update once when we start and also when vGameState changes
-- We should always see the most updated GameState.
update()
vGameState.Changed:Connect(update)

TextDirection

读取并联

TextFits

只读
未复制
读取并联

TextFits 是一个只读的属性,其值为 false 如果 TextLabel.Text 内容不能在 GuiBase2d.AbsoluteSize 中渲染时,当 Class.TextLabel.TextWrapped</

代码示例

Long Text Wrapping

local textLabel = script.Parent
-- This text wrapping demo is best shown on a 200x50 px rectangle
textLabel.Size = UDim2.new(0, 200, 0, 50)
-- Some content to spell out
local content = "Here's a long string of words that will "
.. "eventually exceed the UI element's width "
.. "and form line breaks. Useful for paragraphs "
.. "that are really long."
-- A function that will spell text out two characters at a time
local function spellTheText()
-- Iterate from 1 to the length of our content
for i = 1, content:len() do
-- Get a substring of our content: 1 to i
textLabel.Text = content:sub(1, i)
-- Color the text if it doesn't fit in our box
if textLabel.TextFits then
textLabel.TextColor3 = Color3.new(0, 0, 0) -- Black
else
textLabel.TextColor3 = Color3.new(1, 0, 0) -- Red
end
-- Wait a brief moment on even lengths
if i % 2 == 0 then
task.wait()
end
end
end
while true do
-- Spell the text with scale/wrap off
textLabel.TextWrapped = false
textLabel.TextScaled = false
spellTheText()
task.wait(1)
-- Spell the text with wrap on
textLabel.TextWrapped = true
textLabel.TextScaled = false
spellTheText()
task.wait(1)
-- Spell the text with text scaling on
-- Note: Text turns red (TextFits = false) once text has to be
-- scaled down in order to fit within the UI element.
textLabel.TextScaled = true
-- Note: TextWrapped is enabled implicitly when TextScaled = true
--textLabel.TextWrapped = true
spellTheText()
task.wait(1)
end

TextScaled

读取并联

而不是使用 TextScaled,我们建议您考虑使用 AutomaticSize,这是一个新的方法,可以动态为您提供最佳视觉效果。

TextScaled 属性确定是否将文本缩放到填满整个 UI 元素空间。 当这个启用时, TextLabel.TextSize 会被忽略, TextLabel.TextWrapped 会自动启用。 此属性对于文本在 BillboardGuis 中渲染 UI 元素有用。

当此属性用于屏幕空间用户界面时,可能需要使用 UITextSizeConstraint 来限制可能的文本大小范围。

文字放大和自动放大

建议开发者避免使用 TextScaled 并调整 UI 来利用自动大小属性。 这两个属性之间的核心差异如下:

  • TextScaled 将内容(文本)缩放到容纳 UI 的大小。 无视绩效,如果缩放过小,一些文本可能会变得不可读取。
  • 自动大小将内容扩展到 UI 上。

使用自动大小调整您的 UI 以满足内容(文本)的同时保持一致的字体大小。有关自动大小的更多信息,请参阅“UI 自动大小”文章。

我们建议您不要在同一个 UI 对象上应用 both TextScaled 和 AutomaticSize。 如果您应用了两个属性:

  • 自动大小确定一个 GuiObject 在此可用的最大空间(在此例中,文本)
  • TextScaled 使用自动大小确定的可用空间来缩放字体大小,以满足可用空间,这将扩展到最大字体大小(100),如果没有大小限制
  • 最终结果将是:文本将进入 100 字体大小,UI 对象将扩展以容纳该文本

使用 both AutomaticSize 和 TextScaled 在同一时间使用可能会导致较大的缩放差异,而不会在自动大小关闭时。

代码示例

Long Text Wrapping

local textLabel = script.Parent
-- This text wrapping demo is best shown on a 200x50 px rectangle
textLabel.Size = UDim2.new(0, 200, 0, 50)
-- Some content to spell out
local content = "Here's a long string of words that will "
.. "eventually exceed the UI element's width "
.. "and form line breaks. Useful for paragraphs "
.. "that are really long."
-- A function that will spell text out two characters at a time
local function spellTheText()
-- Iterate from 1 to the length of our content
for i = 1, content:len() do
-- Get a substring of our content: 1 to i
textLabel.Text = content:sub(1, i)
-- Color the text if it doesn't fit in our box
if textLabel.TextFits then
textLabel.TextColor3 = Color3.new(0, 0, 0) -- Black
else
textLabel.TextColor3 = Color3.new(1, 0, 0) -- Red
end
-- Wait a brief moment on even lengths
if i % 2 == 0 then
task.wait()
end
end
end
while true do
-- Spell the text with scale/wrap off
textLabel.TextWrapped = false
textLabel.TextScaled = false
spellTheText()
task.wait(1)
-- Spell the text with wrap on
textLabel.TextWrapped = true
textLabel.TextScaled = false
spellTheText()
task.wait(1)
-- Spell the text with text scaling on
-- Note: Text turns red (TextFits = false) once text has to be
-- scaled down in order to fit within the UI element.
textLabel.TextScaled = true
-- Note: TextWrapped is enabled implicitly when TextScaled = true
--textLabel.TextWrapped = true
spellTheText()
task.wait(1)
end

TextSize

读取并联

TextSize 属性确定了一个渲染文本的一行高度的 Offset。 单位是 Offset,而不是点(在大多数文档编辑程序中使用)。 值得注意的是,“传承”字体的行高度会以不同的方式显示,并且不会完全匹配此属性。

这个属性和 TextLabel.TextColor3TextLabel.TextTransparencyTextLabel.TextStrokeColor3 和 1> Class.TextLabel.TextStrokeTransparency1> 都影响文本的渲染方式。

此属性超过 TextLabel.FontSize 因为它是一个数字而不是一个枚列。 在内部,Roblox 使用多个预处理角色图像为每个字体大小提供服务。 它选择最接近的大小为 TextSize,然后将该字体大小缩放到渲染文本。 在引入此属性之前,您只能从预处理大小

代码示例

"Kaboom!" Text

local textLabel = script.Parent
textLabel.Text = "Kaboom!"
while true do
for size = 5, 100, 5 do
textLabel.TextSize = size
textLabel.TextTransparency = size / 100
task.wait()
end
task.wait(1)
end

TextStrokeColor3

读取并联

TextStrokeColor3 属性设置绘制的文本的stroke或outline的颜色。 此属性和 TextLabel.TextStrokeTransparency 确定文本stroke的视觉属性。

文本渊是在正常文本之前渲染,它是通过+/-1像素 Offset在每个方向上的4个文本渊渲染。 文本渊渲染独立和相同的文本在+/-1像素 Offset在每个方向上。

代码示例

Text Highlight Oscillation

local textLabel = script.Parent
-- How fast the highlight ought to blink
local freq = 2
-- Set to yellow highlight color
textLabel.TextStrokeColor3 = Color3.new(1, 1, 0)
while true do
-- math.sin oscillates from -1 to 1, so we change the range to 0 to 1:
local transparency = math.sin(workspace.DistributedGameTime * math.pi * freq) * 0.5 + 0.5
textLabel.TextStrokeTransparency = transparency
task.wait()
end

TextStrokeTransparency

读取并联

TextStrokeTransparency 属性设置绘制的文本的stroke或outline的透明度。 此属性和 TextLabel.TextStrokeColor3 确定文本stroke的视觉属性。

文本渍是在正常文本之前渲染,它是通过在+/-1像素 Offset在每个方向上的4次渲染相同的文本在同一透明度的

代码示例

Text Highlight Oscillation

local textLabel = script.Parent
-- How fast the highlight ought to blink
local freq = 2
-- Set to yellow highlight color
textLabel.TextStrokeColor3 = Color3.new(1, 1, 0)
while true do
-- math.sin oscillates from -1 to 1, so we change the range to 0 to 1:
local transparency = math.sin(workspace.DistributedGameTime * math.pi * freq) * 0.5 + 0.5
textLabel.TextStrokeTransparency = transparency
task.wait()
end

TextTransparency

读取并联

在UI元素中渲染的所有文字的透明度都受到TextColor3属性的决定。 此属性以及 TextLabel.FontTextLabel.TextSizeTextLabel.TextColor3 的组合决定了文本的视觉属性。 文本在文本stroke ( 1> Class.TextLabel.TextStrokeTransparency

使用数字 for-Loop 来显示屏幕上的文本是一个很棒的方法来吸引玩家的注意。


-- Count backwards from 1 to 0, decrementing by 0.1
for i = 1, 0, -0.1 do
textLabel.TextTransparency = i
task.wait(0.1)
end

代码示例

Fading Banner

local TweenService = game:GetService("TweenService")
local textLabel = script.Parent
local content = {
"Welcome to my game!",
"Be sure to have fun!",
"Please give suggestions!",
"Be nice to other players!",
"Don't grief other players!",
"Check out the shop!",
"Tip: Don't die!",
}
local tweenInfo = TweenInfo.new(1, Enum.EasingStyle.Sine, Enum.EasingDirection.InOut)
local RNG = Random.new()
local fadeIn = TweenService:Create(textLabel, tweenInfo, {
TextTransparency = 0,
})
local fadeOut = TweenService:Create(textLabel, tweenInfo, {
TextTransparency = 1,
})
local lastIndex
while true do
-- Step 0: Fade out before doing anything
fadeOut:Play()
task.wait(tweenInfo.Time)
-- Step 1: pick content that wasn't the last displayed
local index
repeat
index = RNG:NextInteger(1, #content)
until lastIndex ~= index
-- Make sure we don't show the same thing next time
lastIndex = index
-- Step 2: show the content
textLabel.Text = content[index]
fadeIn:Play()
task.wait(tweenInfo.Time + 1)
end
"Kaboom!" Text

local textLabel = script.Parent
textLabel.Text = "Kaboom!"
while true do
for size = 5, 100, 5 do
textLabel.TextSize = size
textLabel.TextTransparency = size / 100
task.wait()
end
task.wait(1)
end

TextTruncate

读取并联

控制显示在此 TextLabel 中的文本的切分。

TextWrapped

读取并联

启用时,该属性将在多个行中在 GUI 元素的空间中渲染文本,以便 TextLabel.TextBounds 不会超过 UI 元素的 GuiBase2d.AbsoluteSize

这可以通过将长段的文本分为多个行来实现。 行间跳过会优先考虑空格;如果长段文本超出元素宽度,该文字将被分为多个行。

如果进一步的行空格会导致文本的垂直高度超过元素的垂直高度(TextLabel.TextBounds 的 Y 组成部分),那么该行将不会被渲染。

代码示例

Long Text Wrapping

local textLabel = script.Parent
-- This text wrapping demo is best shown on a 200x50 px rectangle
textLabel.Size = UDim2.new(0, 200, 0, 50)
-- Some content to spell out
local content = "Here's a long string of words that will "
.. "eventually exceed the UI element's width "
.. "and form line breaks. Useful for paragraphs "
.. "that are really long."
-- A function that will spell text out two characters at a time
local function spellTheText()
-- Iterate from 1 to the length of our content
for i = 1, content:len() do
-- Get a substring of our content: 1 to i
textLabel.Text = content:sub(1, i)
-- Color the text if it doesn't fit in our box
if textLabel.TextFits then
textLabel.TextColor3 = Color3.new(0, 0, 0) -- Black
else
textLabel.TextColor3 = Color3.new(1, 0, 0) -- Red
end
-- Wait a brief moment on even lengths
if i % 2 == 0 then
task.wait()
end
end
end
while true do
-- Spell the text with scale/wrap off
textLabel.TextWrapped = false
textLabel.TextScaled = false
spellTheText()
task.wait(1)
-- Spell the text with wrap on
textLabel.TextWrapped = true
textLabel.TextScaled = false
spellTheText()
task.wait(1)
-- Spell the text with text scaling on
-- Note: Text turns red (TextFits = false) once text has to be
-- scaled down in order to fit within the UI element.
textLabel.TextScaled = true
-- Note: TextWrapped is enabled implicitly when TextScaled = true
--textLabel.TextWrapped = true
spellTheText()
task.wait(1)
end

TextXAlignment

读取并联

文本对齐在 UI 元素的空间内确定横向对齐(X 轴)的文本渲染。它与 CSS 文本对齐属性相同,左、右和中心值(不存在就位选项)。 对于左和右,文本会在左/右文本边界触摸 UI 元素矩形的中心。 对于中心,每个文本行都会在中心元素的角落。

这个属性与 TextLabel.TextYAlignment 一起使用,用于完全确定在两个轴上的文本对齐。此属性不会影响 read-only 属性 TextLabel.TextBoundsTextLabel.TextFits

代码示例

Text Alignment

-- Paste this in a LocalScript within a TextLabel/TextButton/TextBox
local textLabel = script.Parent
local function setAlignment(xAlign, yAlign)
textLabel.TextXAlignment = xAlign
textLabel.TextYAlignment = yAlign
textLabel.Text = xAlign.Name .. " + " .. yAlign.Name
end
while true do
-- Iterate over both TextXAlignment and TextYAlignment enum items
for _, yAlign in pairs(Enum.TextYAlignment:GetEnumItems()) do
for _, xAlign in pairs(Enum.TextXAlignment:GetEnumItems()) do
setAlignment(xAlign, yAlign)
task.wait(1)
end
end
end

TextYAlignment

读取并联

文本对齐在 UI 元素的空间中确定垂直对齐(Y 轴)的文本渲染。 对于顶部和底部,文本会在顶部/底部文本边缘触摸 UI 元素的边缘。 对于中心,文本会在顶部边缘的文本边缘与元素的底部边缘之间形成平等空间。

这个属性与 TextLabel.TextXAlignment 一起使用,确定在两个轴上的文本对齐。 此属性不会影响 read-only 属性 TextLabel.TextBoundsTextLabel.TextFits

代码示例

Text Alignment

-- Paste this in a LocalScript within a TextLabel/TextButton/TextBox
local textLabel = script.Parent
local function setAlignment(xAlign, yAlign)
textLabel.TextXAlignment = xAlign
textLabel.TextYAlignment = yAlign
textLabel.Text = xAlign.Name .. " + " .. yAlign.Name
end
while true do
-- Iterate over both TextXAlignment and TextYAlignment enum items
for _, yAlign in pairs(Enum.TextYAlignment:GetEnumItems()) do
for _, xAlign in pairs(Enum.TextXAlignment:GetEnumItems()) do
setAlignment(xAlign, yAlign)
task.wait(1)
end
end
end

方法

活动