TextLabel
*Nội dung này được dịch bằng AI (Beta) và có thể có lỗi. Để xem trang này bằng tiếng Anh, hãy nhấp vào đây.
Một TextLabel hiển thị một hình chữ nhật, giống như một Frame , với chữ viết kiểu text. Hình chữ nhật có thể được sử dụng để định giới hạn chữ, kiểu thu nhỏ chữ (
Lớp này chứa các thuộc tính kiểm soát hiển thị của văn bản, chẳng hạn như TextLabel.Font và TextLabel.TextColor3 . Tất cả các văn bản được hiển thị bởi một nhãn v
TextService:GetTextSize() có thể được sử dụng để lấy kích thước (围) của văn bản được hiển thị trong một TextLabel được cung cấp kích thước chữ, chữ cỡ và kích thước khung.
Một UITextSizeConstraint đối tượng có thể được sử dụng để hạn chế kích thước của văn bản với TextLabel.TextScaled được bật. Nên kích thước của văn bản không nên thấp hơn 9, nếu không nó có thể không hiển thị cho hầu hế
Mẫu mã
-- 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
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)
Tóm Tắt
Thuộc Tính
Một bản sao của TextLabel.Text chứa chính xác những gì đang được hiển thị bởi TextLabel .
Xác định chữ cái được sử dụng để hiển thị văn bản.
Xác định chữ cái được sử dụng để hiển thị văn bản.
Điều chỉnh khoảng cách giữa các dòng chữ trong TextLabel .
Đặt whether a TextLabel should be GuiBase2d.Localize or not.
Số lượng tối đa của các thẻ có thể được hiển trình diễnbởi TextLabel .
Xác định có phải TextLabel hiển thị dòng TextLabel.Text bằng hình dạng chữ rất giàu tính tương tác không?
Xác định chuỗi được hiển thị bởi thành phần UI.
Kích thước của văn bản trong một thành phần UI bị lệch.
Thuộc tính này xác định màu của văn bản được hiển thị.
Mở khi nội dung chữ được hiển thị không vừa với không gian của thành phần UI.
Xác định whether text in a UI element is scaled to fill the UI element.
Xác định chiều cao dòng chữ trong các khoảng cách.
Xác định màu của các đường nét (nét chân chóe).
Xác định độ trong suốt của các đường chữ (nét).
Xác định độ trong suốt của văn bản được hiển thị.
Điều khiển sự cắt xé của văn bản được hiển thị trong TextLabel này.
Xác định nếu text wraps to multiple lines within the GUI element space, truncating excess text.
Xác định bố trí ngang của văn bản được hiển thị.
Xác định chỉnh dọc trong đó text được hiển thị.
Xác định whether this UI element sinks input.
Xác định điểm nguồn của một GuiObject , so với kích thước tương đối của nó.
Xác định xem resize có xảy ra dựa trên nội dung con hay không.
Xác định màu nền GuiObject .
Xác định độ trong suốt của GuiObject hình ảnh và biên giới.
Xác định màu của GuiObject border.
Xác định cách mà GuiObject biên giới được phân bố đối với kích thước của nó.
Xác định chiều rộng pixel của GuiObject biên giới.
Xác định nếu con cháu GuiObjects nằm ngoài giới hạn của một thành phần GUI cha mẹ nên tạo ra.
Xác định apakah chuột của người chơi đang được nhấn chủ động trên GuiObject hay không.
Xác định có thể hay không tương tác với GuiButton , hoặc liệu GuiState của GuiObject đang thay đổi hay không.
Điều khiển thứ tự sắp xếp của GuiObject khi được sử dụng với một UIGridStyleLayout .
Điều chỉnh GuiObject được chọn khi gamepad selector được di chuyển xuống.
Điều chỉnh GuiObject được chọn khi gamepad selector được di chuyển sang bên trái.
Điều chỉnh GuiObject được chọn khi gamepad selector được di chuyển sang phải.
Điều chỉnh GuiObject được chọn khi gamepad selector di chuyển lên trên.
Xác định vị trí pixel và vị trí trục của GuiObject .
Xác định số độ bằng mà GuiObject được quay.
Xác định có thể chọn GUI bằng gamepad.
Làm cho trang trí chọn mặc định của gamepad bị tắt.
Thứ tự của GuiObjects được chọn bởi gamepad UI lựa chọn.
Xác định kích thước pixel và kích thước trục của GuiObject .
Điều chỉnh các trục Size mà GuiObject sẽ dựa trên, so với kích thước của cha mình.
Một tính chất hỗn hợp của BackgroundTransparency và TextTransparency .
Xác định có phải GuiObject và con cháu của nó sẽ được xử lý.
Xác định thứ tự mà một GuiObject tạo gần những người khác.
Mô tả vị trí màn hình thực tế của một thành phần UI, bằng cách đếm các pixel.
Mô tả sự quay màn hình thực tế của một thành phần UI, bằng độ.
Mô tả kích thước màn hình thực tế của một thành phần UI, bằng các pixel.
Khi đặt về true, localization sẽ được áp dụng cho GuiBase2d và những con cháu của nó.
Một tham khảo đến một LocalizationTable để ứng dụng hóa học hóa toàn bộ vào GuiBase2d và các con cháu của nó.
Tùy chỉnh hành vi lựa chọn gamepad ở hướng dưới.
Tùy chỉnh hành vi lựa chọn gamepad ở hướng bên trái.
Tùy chỉnh hành vi lựa chọn gamepad ở hướng phải.
Tùy chỉnh hành vi lựa chọn gamepad trong hướng lên.
Cho phép tùy chỉnh chuyển động của nút gamepad.
Phương Pháp
Phương Pháp kế thừa từ GuiObject- TweenPosition(endPosition : UDim2,easingDirection : Enum.EasingDirection,easingStyle : Enum.EasingStyle,time : number,override : bool,callback : function):bool
Di chuyển một GUI mượt mà đến một new UDim2 .
- TweenSize(endSize : UDim2,easingDirection : Enum.EasingDirection,easingStyle : Enum.EasingStyle,time : number,override : bool,callback : function):bool
Điều chỉnh mượt mà một GUI lên một new Datatype.UDim2 .
- TweenSizeAndPosition(endSize : UDim2,endPosition : UDim2,easingDirection : Enum.EasingDirection,easingStyle : Enum.EasingStyle,time : number,override : bool,callback : function):bool
Di chuyển một GUI một cách mượt mà đến kích thước và vị trí mới.
Sự Kiện
Sự Kiện kế thừa từ GuiObjectĐược kích hoạt khi một người bắt đầu tương tác thông qua một thiết bị giao tiếp người-máy (chuột bên dưới, chạm bắt đầu, nút bàn phím xuống, v.v.v).
Bị kích động khi một người thay đổi cách họ tương tác thông qua thiết bị giao tiếp Người-Máy (chuột, bắt đầu, nhấn bàn phím, v.v..).
Đã kết thúc khi một người dừng tương tác thông qua thiết bị Giao tiếp Người-Máy (chuột bên dưới, chạm bắt đầu, nút bàn phím xuống, v.v.);.
Bắt đầu khi người dùng di chuyển chuột vào một thành phần GUI.
Bắt đầu khi người dùng di chuyển chuột khỏi một thành phần GUI.
Bắt lửa mỗi khi một người dịch chuột trong khi nó ở trong một thành phần GUI.
Bắt đầu khi người dùng cuộn chuột chuột của họ trở lại khi chuột đang ở trên một thành phần GUI.
Bắt đầu khi người dùng di chuyển bánh xe chuột của họ khi chuột ở trên một thành phần GUI.
Được kích hoạt khi GuiObject đang được tập trung với GamepadSelector.
Bị kích hoạt khi GamepadSelector ngưng tập trung vào GuiObject.
Lửa khi người chơi bắt đầu, tiếp tục và dừng lại sau khi nhấn mạnh UI.
- TouchPan(touchPositions : Array,totalTranslation : Vector2,velocity : Vector2,state : Enum.UserInputState):RBXScriptSignal
Bắt đầu khi người chơi di chuyển ngón tay của họ trên thành phần UI.
- TouchPinch(touchPositions : Array,scale : number,velocity : number,state : Enum.UserInputState):RBXScriptSignal
Bắt lửa khi người chơi thực hiện một hành động nhấn hoặc kéo dùng hai ngón tay trên thành phần UI.
- TouchRotate(touchPositions : Array,rotation : number,velocity : number,state : Enum.UserInputState):RBXScriptSignal
Bắt đầu khi người chơi thực hiện một hành động quay bằng hai ngón tay trên thành phần UI.
Bắt đầu khi người chơi thực hiện một động tác trượt tuyết trên một thành phần UI.
Bắt đầu khi người chơi thực hiện một hành động nhấn chuột trên thành phần UI.
- SelectionChanged(amISelected : bool,previousSelection : GuiObject,newSelection : GuiObject):RBXScriptSignal
Kích hoạt khi lựa chọn gamepad di chuyển đến, rời đi hoặc thay đổi trong khu vực GuiBase2d hoặc bất kỳ con cháu GuiObjects kế tiếp.
Thuộc Tính
ContentText
Điều này cung cấp một bản sao của TextLabel.Text đó chứa chính xác những gì đang được hiển thị bởi TextLabel . Điều này hữu ích cho việc loại bỏ các thẻ phong cách được sử dụng cho văn bản giàu.
Ví dụ
Khi TextLabel.RichText được bật, thuộc tính TextLabel.ContentText hiển thị chữ như nó xuất hiện cho người chơi.
<tbody><tr><td>đúng</td><td>\<b>Xin chào, thế giới!\</b></td><td>\<b>Xin chào, thế giới!\</b></td></tr><tr><td>đúng</td><td>\<b>Xin chào, thế giới!\</b></td><td>Xin chào, thế giới!</td></tr></tbody>
Văn bản giàu | Văn bản | Nội dung text |
---|
Font
Thuộc tính Chữ cái lựa chọn một trong vài bản chữ được định dạng trước đó mà thành phần UI sẽ hiển thị chữ của mình. Một số bản chữ có dấu chúa, gót chúa và/hoặc độ sáng (vì không có thuộc tính trọng lượng chữ hoặc kiểu chữ).
Ngoài font "Legacy", mỗi font sẽ tạo ra chữ văn bản với chiều cao dòng bằng với đặ性 TextLabel.TextSize .Font "Code" là font monospace duy nhất. Nó có tính năng độc đáo rằng mỗi nhân vật có tỷ lệ chiều rộng v
Đặ性 này được giữ đồng bộ với đặ性 TextLabel.FontFace . Khi cài đặýFont, đặýFont sẽ được đặý để Font.fromEnum(value) .
Mẫu mã
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
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
Thuộc tính FontFace tương tự thuộc tínhFont, nhưng cho phép bạn cài đặt các kiểu chữ của bạn không tồn tại trong danh sách kiểu chữ.
Điều này được giữ đồng bộ với điều kiện TextLabel.Font . Khi cài đặt FontFace,Font được đặt vào giá trị danh sách tương ứng tương ứng hoặc Enum.Font.Unknown nếu không có trùng khớp.
LineHeight
Điều khiển chiều cao của các dòng, như một nhiều của kích thước hàng gốc của chữ, bằng cách thay đổi khoảng cách giữa các dòng của văn bản trong TextLabel . Các giá trị hợp lệ có thể lớn hơn hoặc nhỏ hơn 1.0, mặc định là 1.0.
LocalizedText
Đặt tính này cho phép hoặc không cho phép một Class.TextLabel``Class.GuiBase2d.Localize .
MaxVisibleGraphemes
Điều này kiểm soát số lượng tối đa của các thẻ (hoặc đơn vị của văn bản) được hiển thị trên TextLabel . Nó được cung cấp chủ yếu như một cách dễ dàng để tạo ra một "hiệu ứng máy chủ typewriter" nơi các nhân vật xuất hiện một cách từ từ.
Đổi tính chất không đổi vị trí hoặc kích thước của các ô thị hiện có - trang bị sẽ được tính toán như thể tất cả các ô thị hiện có.
Đặt thuộc tính để -1 tắt giới hạn và hiển thị toàn bộ TextLabel.Text .
Mẫu mã
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
Thuộc tính này xác định whether the TextLabel renders the TextLabel.Text string using rich text formatting. Rich text uses simple markup tags to style sections of the string in bold, italics, specific colors, and more.
Để sử dụng văn bản mở rộng, hãy bao gồm các thẻ biểu tượng hóa trong dòng TextLabel.Text của chuỗi.
Text
Thuộc tính Văn bản xác định nội dung được hiển thị bởi thành phần UI. Các thuộ
Có thể tạo ra các biểu tượng emoji (như cái 😃) và các biểu tượng khác. Các biểu tượng đặc biệt này không bị ảnh hưởng bởi thuộc tính TextLabel.TextColor3 . Các biểu tượng này có thể được dán v
Đặc tính này có thể chứa các ký tự mới, nhưng nó không thể được gõ trong các ký tự mới trong các cửộc sống. Tương tự, đặc tính này có thể chứa một nhân vật tab, nhưng nó sẽ được hiển thị như một dấu câu trong các cửộc sống.
Mẫu mã
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
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
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
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
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
Giao hàng đọc chỉ định TextBounds phản ánh kích thước chính xác của văn bản đã được hiển thị trong các khoảng cách. Với những lời khác, nếu bạn cố gắng để đặt văn bản vào một hình chữ nhật, thì định tuyến này sẽ phản ánh các kích thước tối thiểu của hình chữ nhậ
Bằng cách sử dụng TextService:GetTextSize() , bạn có thể dự đoán những gì TextBounds sẽ có trên một TextLabel được cung cấp một chuỗi, TextLabel.Font , TextLabel.TextSize và kích thước khung.
Mẫu mã
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
Thuộc tính này xác định màu của tất cả các chữ cái được hiển thị bởi một thành phần GUI . This property along with TextLabel.Font , TextLabel.TextSize and <
Quan trọng là text dễ đọc bởi người chơi! Hãy chắc chắn chọn màu có độ bão hòa thấp, như trắng, màu xám hoặc đen. Make sure the color of your text is contrasted by the TextLabel.BackgroundColor3 of the GUI element. If the element has a transparent background
Mẫu mã
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)
-- 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)
-- 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
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 là một tính năng đọc chỉ được xác định là sai nếu nội dung TextLabel.Text không phù hợp với Class.GuiBase
Mẫu mã
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
Thay vì sử dụng TextScaled, chúng tôi khuyến nghị bạn xem xét sử dụng AutomaticSize, một phương pháp mới để thu nhỏ UI một cách tự động mà sẽ cho bạn kết quả thị giác tốt nhất có thể.
Thuộc tính TextScaled xác định có phải text được nhân bằng cỡ nội dung toàn bộ thành phần UI không? Khi bật điều này, TextLabel.TextSize được bỏ qua và TextLabel.TextWrapped được tự động bậ
Khi sử dụng thuộc tính này cho UI screen-space, có thể đáng khuyến khích sử dụng một UITextSizeConstraint để hạn chế phạm vi các kích thước chữ khải.
TextScaled và AutomaticSize
Được khuyến nghị rằng các nhà phát triển tránh sử dụng TextScaled và điều chỉnh UI để tận dụng tính tự động thay đổi kích thước nhưng thay vào đó là tính tự động thay đổi kích thước. Dưới đây là sự khác biệt chính giữa hai tính năng này:
- TextScaled tăng cỡ nội dung (văn bản) để chấp nhận UI. Mà không có sự cân nhắc kỹ lưỡng, một số văn bản có thể trở nên không đọc được nếu bạn thu nhỏ quá nhỏ.
- Kích thước tự động thay đổi kích thước của UI để chứa nội dung.
Với AutomaticSize, bạn có thể điều chỉnh UI của bạn để chứa nội dung (văn bản) mà vẫn duy trì kích thước chữ (kiểu chữ). Để biết thêm thông tin về cách sử dụng kiểu chữ tự động, hãy xem bài viết UI tự động Size.
Chúng tôi khuyến nghị bạn không áp dụng cả TextScaled và AutomaticSize trên cùng một đối tượng UI. Nếu bạn áp dụng cả hai đặt tính này:
- Kích thước tự động xác định số lượng không gian tối đa mà một GuiObject có thể sử dụng (trong trường hợp này, text)
- TextScaled sử dụng không gian có sẵn được xác định bởi AutomaticSize, để thay đổi kích thước chữ vào không gian có sẵn, nhưng sẽ mở rộng lên đến kích thước chữ tối đa (100), nếu không có hạn chế kích thước
- Kết quả cuối cùng sẽ là: text đi đến 100 font size và UI object sẽ mở rộng để phù hợp với những chữ
Sử dụng cả AutomaticSize và TextScaled cùng một lúc có thể dẫn đến sự khác biệt về mức độ thu nhỏ lớn hơn so với khi AutomaticSize bị tắt.
Mẫu mã
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
Thuộc tính TextSize xác định chiều cao trong các ô chỉ thị của một dòng chữ được xử lý. Đơn vị là trong các ô chỉ thị, không phải là điểm (được sử dụng trong hầu hết các chương trình chỉnh sửa tài liệu). Nó đáng lưu ý rằng chiều cao dòng chữ "Legacy" có thể khác nhau
Điều này và TextLabel.TextColor3 , TextLabel.TextTransparency , TextLabel.TextStrokeColor3 và 1> Class.TextLabel.TextStrokeTransparency1> ảnh hưởng đến cách text được hiển thị.
Điều này đã được đổi TextLabel.FontSize nên, vì đó là một số và không phải là một danh sách. Trong nội dung, Roblox sử dụng một loạt các bộ ảnh nhân vật đã chuẩn bị cho mỗi
Mẫu mã
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
Thuộc tính TextStrokeColor3 đặt màu của cái đoạn, hoặc nét tương tự của chữ được hiển thị. This property and TextLabel.TextStrokeTransparency định hướng các thuộc tính hình ảnh của cái đoạn.
Text stroke được hiển thị trước text thường và chỉ là 4 render của cùng một text ở +/- 1 pixel offsets trong mỗi hướng. Text stroke render hoạt động độc lập và giống nhau đối với TextLabel.TextColor3 và TextLabel.TextTransparency .
Mẫu mã
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
Thuộc tính TextStrokeTransparency cài đặt độ trong suốt của các đường nét hoặc nét bên trên của chữ được hiển thị. Thuộc tính này và TextLabel.TextStrokeColor3 xác định các thuộc tính thị giác của các đường nét.
Hiệu ứng chữ viết được tạo trước thường văn bản và chỉ đơn giản là 4 renderings
Mẫu mã
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
Thuộc tính TextColor3 xác định độ trong suốt của tất cả các kết cấu chữ được hiển thị bởi một thành phần UI. Thuộc tính này cùng với TextLabel.Font , TextLabel.TextSize và
Việc thay đổi chữ trong một vòng lặp sử dụng một số bằng văn bản là một cách tuyệt vời để thu hút sự chú ý của người chơi đến văn bản xuất hiện trên màn hình.
-- Count backwards from 1 to 0, decrementing by 0.1for i = 1, 0, -0.1 dotextLabel.TextTransparency = itask.wait(0.1)end
Mẫu mã
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
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
TextWrapped
Khi bật, thuộc tính này sẽ hiển thị chữ trên nhiều dòng trong không gian của một thành phần GUI để cho phép TextLabel.TextBounds không bao giờ vượt quá GuiBase2d.AbsoluteSize của thành phần UI.
Điều này đạt được bằng cách phân các dòng văn bản thành nhiều dòng. Các dòng cắt sẽ ưa thích dấu trắng; nếu một từ không được cắt đứt vượt qua chiều rộng của thành phần, từ đó sẽ được chia thành nhiều dòng.
Nếu các dòng nối dòng tiếp theo gây ra chiều cao dọc của văn bản (nhà cung cấp Y của TextLabel.TextBounds ) vượt quá chiều cao dọc của thành phần (nhà cung cấp Y của GuiBase2d.AbsoluteSize), thì dòng đó sẽ không được hiển thị.
Mẫu mã
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
TextXAlignment xác định hướng dọc (X-axi) của văn bản được hiển thị trong không gian của một thành phần UI. Nó hoạt động tương tự như property text-align bên trái, bên phải và trung tâm (không có lựa chọn chỉnh sửa). Đối với Left và Right, mỗ
Thuộc tính này được sử dụng kết hợp với TextLabel.TextYAlignment để xác định hoàn toàn vị trí trên cả hai trục. Thuộc tính này sẽ không ảnh hưởng đến các thuộc tính đọc TextLabel.TextBounds và Class.TextLabel.TextF
Mẫu mã
-- 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
TextYAlignment xác định vị trí dọc (Y-ax) của văn bản được hiển thị trong không gian của thành phần UI. Đối với Top và Bottom, văn bản được hiển thị như văn bản trên cùng/văn bản dưới cùng của khu vực hộp thoại. Đối vớ
Thuộc tính này được sử dụng kết hợp với TextLabel.TextXAlignment để xác định hoàn toàn vị trí trên cả hai trục. Thuộc tính này sẽ không ảnh hưởng đến các thuộc tính đọc TextLabel.TextBounds và Class.TextLabel.TextF
Mẫu mã
-- 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