TextBox

Tampilkan yang Tidak Digunakan Lagi

*Konten ini diterjemahkan menggunakan AI (Beta) dan mungkin mengandung kesalahan. Untuk melihat halaman ini dalam bahasa Inggris, klik di sini.

Sebuah Kotak Teks memungkinkan pemain untuk memberikan masukan teks. Ini berperilaku mirip dengan TextButton, kecuali bahwa satu Kotak Teks dapat ditetapkan fokus dengan mengklik, mengetuk atau pemilihan gamepad. Saat dalam fokus, pemain dapat menggunakan keyboard untuk mengubah properti Class.Toolbar.Text|Text

  • Jika tidak ada teks, PlaceholderText akan muncul. Ini berguna mengingatkan pemain tentang jenis atau format data yang mereka masukkan.
  • Secara default, properti ClearTextOnFocus diaktifkan dan menjamin tidak ada teks yang ada saat TextBox fokus. Ini mungkin tidak diinginkan untuk teks yang harus diubah oleh pemain.
  • Properti MultiLine memungkinkan pemain untuk memasukkan beberapa baris teks dengan karakter baris baru ( \n ).

The ContextActionService menghormati TextBox keybinds dan akan secara otomatis mencegah acara tekan tombol yang terjadi dengan ContextActionService:BindAction() . UserInputService.InputBegan dan acara terkait akan tetap berfungsi saat sebuah TextBox berada dalam fokus.

Negara Fokus

Mungkin mendeteksi dan mengubah status fokus TextBox:

  • Anda dapat menggunakan CaptureFocus ketika muncul dialog sehingga pemain tidak perlu mengklik TextBox ketika tersedia; Anda dapat menggunakan ContextActionService:BindAction() untuk menyambungkan kunci tertentu untuk fokus TextBox menggunakan fungsi ini. Ketika
  • Anda dapat mendeteksi apakah kotak teks tertentu berada dalam fokus dengan menggunakan IsFocused. Alternatifnya, UserInputService:GetFocusedTextBox() dapat digunakan untuk memeriksa apakah kotak teks apa pun berada dalam fokus.
  • Ketika pemain telah selesai memasukkan teks, acara FocusLost muncul, menunjukkan apakah pengguna menekan Enter untuk mengirimkan teks bersama dengan InputObject yang menyebabkan kerugian fokus. Saat m
  • Jika beberapa masalah penting lainnya muncul selama gameplay, Anda dapat ReleaseFocus dari TextBox sehingga masukan keyboard pemain kembali ke game Anda.

Edit Teks

Sebuah TextBox mendukung pemilihan teks melalui properti CursorPosition dan SelectionStart nya. Menggunakan GetPropertyChangedSignal, Anda dapat mendeteksi ketika sebuah pilihan berubah. Selain itu, mungkin bagi pemain untuk men

Peringatan Text Filtering Permainan yang memudahkan komunikasi antara pemain ke pemain menggunakan teks, seperti kotak obrolan atau nama panggilan, harus dengan benar menyaring teks menggunakan TextService:FilterStringAsync() atau Chat:FilterStringAsync(). Jika ini tidak dilakukan dengan benar, permainan Anda mungkin menerima actionmoder

Contoh Kode

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)

Rangkuman

Properti

Properti diwarisi dari GuiObjectProperti diwarisi dari GuiBase2d

Metode

  • Menggeser klien untuk fokus pada TextBox.

  • Mengembalikan benar jika kotak teks fokus, atau false jika tidak.

  • ReleaseFocus(submitted : bool):void

    Mengakses klien untuk menurunkan TextBox.

Metode diwarisi dari GuiObject

Acara

Acara diwarisi dari GuiObjectAcara diwarisi dari GuiBase2d

Properti

ClearTextOnFocus

Baca Paralel

Menentukan apakah mengklik TextBox akan menghapus prop性 TextBox.Text

ContentText

Hanya Baca
Tidak Direplikasi
Baca Paralel

CursorPosition

Baca Paralel

Posisi CursorPosition menentukanOffset teks cursor dalam bytes, atau -1 jika TextBox saat ini tidak di편집. Sebuah nilai 1 mewakili awal, posisi sebelum bintang pertama dalam Text property. Saat digunakan bersama dengan property SelectionStart, kemungkinan

Harus dicatat bahwa unit dari properti ini adalah bytes dan bahwa banyak karakter unicode seperti emoji lebih dari 1 byte . kejadian, jika seorang pemain mengetik ke TextBox "Halo 👋" – "Halo" segera setelah tanda tangan bertangan – posisi kurungan akan menjadi 10, bukan 7, karena emoji menggunakan 4

Contoh Kode

TextBox Selections

local textBox = script.Parent
local function showSelection()
if textBox.CursorPosition == -1 or textBox.SelectionStart == -1 then
print("No selection")
else
local selectedText = string.sub(
textBox.Text,
math.min(textBox.CursorPosition, textBox.SelectionStart),
math.max(textBox.CursorPosition, textBox.SelectionStart)
)
print('The selection is:"', selectedText, '"')
end
end
textBox:GetPropertyChangedSignal("CursorPosition"):Connect(showSelection)
textBox:GetPropertyChangedSignal("SelectionStart"):Connect(showSelection)
Tersembunyi
Tidak Direplikasi
Baca Paralel

PropietasFont memilih salah satu dari beberapa prasetel fonts dengan mana elemen UI akan menyajikan teksnya. Beberapa huruf memiliki warna bold, italic dan/atau varian cahaya (karena tidak ada propietas font atau gaya font).

Dengan pengecualian font "Legacy", setiap font akan menghasilkan teks dengan tinggi baris yang sama dengan propinsi TextBox.TextSize. Font "Kode" adalah font monospace tunggal. Ini memiliki propinsi yang unik bahwa setiap karakter memiliki persentase lebar dan tinggi yang sama dari 1:2. Lebar setiap karakter adalah sek

Properti ini dipertahankan dalam sinkronisasi dengan properti TextBox.FontFace. Saat menetapkanFont,FontFace akan diatur menjadi Font.fromEnum(value) .

Contoh Kode

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

Baca Paralel

Propiedad FontFace mirip dengan propiedad Font, tetapi memungkinkan pengaturan huruf yang tidak ada dalam daftarFont.

Properti ini di-sync dengan properti TextBox.Font. Saat menetapkan FontFace,Font ditetapkan ke nilai枚值 yang sesuai, atau ke Enum.Font.Unknown jika tidak ada pertandingan.

LineHeight

Baca Paralel

Mengontrol tinggi baris, sebagai beberapa dari ukuran huruf, dengan menyesuaikan jarak antar baris teks di TextBox .Nilai yang valid berkisar dari 1,0 hingga 3,0, berdasarkan default menjadi 1,0.

MaxVisibleGraphemes

Baca Paralel

Properti ini mengontrol jumlah maksimum grafem (atau unit teks) yang ditunjukkan di TextBox, terlepas dari apakah itu menunjukkan TextBox.PlaceholderText atau TextBox.Text.

Mengubah propinsi tidak mengubah posisi atau ukuran grafem yang terlihat - layout akan dihitung seolah-olah semua grafem terlihat.

Mengatur property ke -1 menonaktifkan batas dan menunjukkan seluruh TextBox.Text .

MultiLine

Baca Paralel

Setel ke benar, teks di dalam TextBox dapat pindah ke beberapa baris. Ini juga mengaktifkan pemain untuk menggunakan tombol enter untuk pindah ke baris baru.

OpenTypeFeatures

Baca Paralel

OpenTypeFeaturesError

Hanya Baca
Tidak Direplikasi
Baca Paralel

PlaceholderColor3

Baca Paralel

Tetapkan warna teks yang digunakan saat tidak ada teks yang dimasukkan ke TextBox belum.

PlaceholderText

Baca Paralel

Tetapkan teks yang ditampilkan saat tidak ada teks yang dimasukkan ke TextBox belum.

RichText

Baca Paralel

Properti ini menentukan apakah TextBox menyajikan string TextBox.Text menggunakan format teks yang kaya. Teks kaya menggunakan tag markup sederhana untuk menyebarkan bagian string dalam huruf besar, huruf mundur, warna spesifik, dan banyak lagi.

Untuk menggunakan teks kaya, cukup masukkan tag formatasi dalam TextBox.Text string.

Catat bahwa ketika TextBox memiliki property ini dan kotak mendapatkan fokus, pengguna akan dapat mengedit dan berinteraksi dengan string XML lengkap, termasuk semua tag formasi. Saat fokus hilang, teks akan secara otomatis memproses dan mengekspor tag sebagai teks kaya.

SelectionStart

Baca Paralel

Mengidentifikasi posisi awal pemilihan teks, atau -1 jika TextBox tidak memiliki rentang teks yang dipilih. Jika nilainya adalah -1 atau setara dengan CursorPosition, maka tidak ada rentang teks yang dipilih. Properti ini menggunakan logika posisi yang sama dengan CursorPosition. SelectionStart akan lebih bes

Contoh Kode

TextBox Selections

local textBox = script.Parent
local function showSelection()
if textBox.CursorPosition == -1 or textBox.SelectionStart == -1 then
print("No selection")
else
local selectedText = string.sub(
textBox.Text,
math.min(textBox.CursorPosition, textBox.SelectionStart),
math.max(textBox.CursorPosition, textBox.SelectionStart)
)
print('The selection is:"', selectedText, '"')
end
end
textBox:GetPropertyChangedSignal("CursorPosition"):Connect(showSelection)
textBox:GetPropertyChangedSignal("SelectionStart"):Connect(showSelection)

ShowNativeInput

Baca Paralel

Jika diaktifkan, masukkan bawaan ke platform digunakan alih-alih keyboard bawaan Roblox.

Text

Baca Paralel

Propietas Teks menentukan konten yang di render oleh elemen UI. Properti visual dari string yang di render ke layar di determinasi oleh TextBox.TextColor3, Class.Toolbar

Mungkin untuk menyajikan emoji (misalnya, 😃) dan simbol lainnya. Simbol khusus ini tidak terpengaruh oleh TextBox.TextColor3 property. Ini dapat ditempelkan ke dalam Script dan LocalScript objek, serta di bagian 2> property window2>.

Properti ini dapat berisi karakter baris baru, namun, tidak mungkin untuk mengetik karakter baris baru di jendela Propinsi. Demikian pula, property ini dapat berisi karakter tab, tetapi akan rendah sebagai ruang kosong.

Contoh Kode

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

Hanya Baca
Tidak Direplikasi
Baca Paralel

Propiedad baca-hanya TextBounds mencerminkan ukuran teks yang dihasilkan dalamOffset. Dengan kata lain, jika Anda mencoba untuk menyesuaikan teks ke dalam Rectangle, propiedad ini akan mencerminkan dimensi minimum Rectangle yang Anda butuhkan untuk menyesuaikan teks.

Menggunakan TextService:GetTextSize() , Anda dapat memprediksi apa TextBounds akan berada di TextLabel yang diberikan string, TextBox.Font , TextBox.TextSize dan ukuran frame.

Contoh Kode

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

Baca Paralel

Item ini mengidentifikasi warna dari semua teks yang di render oleh elemen GUI. Item ini bersama dengan TextBox.Font , TextBox.TextSize dan 1> Class.Toolbar.TextTransparency1> akan menentukan propeti visual teks. Teks di render setel

Sangat penting agar teks dibaca dengan mudah oleh pemain! Pastikan untuk memilih warna dengan sedikit-tidak ada saturasi, seperti putih, abu-abu, atau hitam. Pastikan warna teks Anda kontras dengan TextBox.BackgroundColor3 dari elemen UI. Jika elemen memiliki latar belakang transparan, cobalah

Contoh Kode

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

Baca Paralel

TextEditable

Baca Paralel

TextEditable menentukan apakah pengguna dapat mengubah Text melalui input. Direkomendasikan untuk menonaktifkan ClearTextOnFocus saat property ini dinonaktifkan, sehingga Teks dapat dihapus saat fokus. Errors: Error: Class.Toolbar.Text|Text

TextFits

Hanya Baca
Tidak Direplikasi
Baca Paralel

Apakah teks cocok dalam kondisi TextBox.

TextScaled

Baca Paralel

Alih-alih menggunakan TextScaled, kami merekomendasikan Anda menggunakan AutomaticSize, metode baru untuk menyesuaikan UI secara dinamis yang akan memberi Anda hasil visual terbaik.

Propiedad TextScaled menentukan apakah teks diubah sehingga mengisi seluruh ruang UI. Saat ini, TextBox.TextSize diabaikan dan TextBox.TextWrapped diaktifkan secara otomatis. Propiedad ini berguna untuk menyempurnakan UI elemen dalam BillboardGuis .

Ketika elemen ini digunakan untuk UI ruang layar, dapat diinginkan untuk menggunakan UITextSizeConstraint untuk mengebat ruang teks yang mungkin.

TextScaled dan AutomaticSize

Direkomendasikan agar pengembang menghindari penggunaan TextScaled dan menyesuaikan UI untuk mengambil keuntungan dari property AutomaticSize. Berikut adalah perbedaan utama antara kedua property ini:

  • TextScaled menyesuaikan konten (teks) untuk menampung UI. Tanpa pertimbangan yang cermat, beberapa teks mungkin menjadi tidak terbaca jika diubah terlalu kecil.
  • AutomaticSize mengubah ukuran UI untuk menampungkan konten.

Dengan AutomaticSize, Anda dapat menyesuaikan UI Anda untuk menampilkan konten (teks) sambil menjaga ukuran huruf yang konsisten. Untuk informasi lebih lanjut tentang cara menggunakan ukuran huruf otomatis, lihat artikel UI Otomatis.

Kami menyarankan agar Anda tidak menerapkan kedua TextScaled dan AutomaticSize pada objek UI yang sama. Jika Anda menerapkan kedua属性 ini:

  • Ukuran Otomatis menentukan jumlah maksimum ruang yang tersedia yang dapat digunakan oleh GuiObject (dalam kasus ini, teks)
  • TextScaled menggunakan ruang yang tersedia ditentukan oleh AutomaticSize, untuk menyesuaikan ukuran huruf agar sesuai dengan ruang yang tersedia, yang akan diperluas hingga ukuran huruf maksimum (100), jika tidak ada batas ukuran
  • Hasil akhir akan menjadi: teks menyertakan 100 ukuran huruf dan objek UI akan diperluas untuk menyesuaikan teks tersebut

Menggunakan kedua Ukuran Otomatis dan TextScaled pada saat yang sama dapat menyebabkan perbedaan skalierung yang signifikan daripada ketika Ukuran Otomatis dinonaktifkan.

Contoh Kode

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

Baca Paralel

Propinsi TextSize menentukan ketinggian dalamOffset dari satu baris teks yang dibuat. Unit adalah dalamOffset, bukan poin (yang digunakan dalam kebanyakan program pengeditan dokumen). "Legacy" font tidak menyimpan propinsi ini.

Contoh Kode

"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

Baca Paralel

Propiedad TextStrokeColor3 menetapkan warna stroke, atau kontur, dari teks yang di render. Propiedad ini dan TextBox.TextStrokeTransparency menentukan propinsi visual dari stroke teks.

Teks terkirim rendah dari teks normal dan hanya 4 render dari teks yang sama dalam +/- 1 pixelOffsets dalam setiap arah. Teks terkirim rendah bekerja secara independen dan identik dengan TextBox.TextColor3 dan TextBox.TextTransparency .

Contoh Kode

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

Baca Paralel

Propinsi TextStrokeTransparency menetapkan transparansi stroke, atau kontur, dari teks yang di render. Propinsi ini dan TextBox.TextStrokeColor3 menentukan propinsi visual dari stroke teks.

Teks tercetak di render sebelum teks normal dan hanya 4 render dari teks yang sama dalam +/- 1 pixel offsets dalam setiap arah. Teks tercetak ter

Contoh Kode

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

Baca Paralel

Propiedad TextColor3 menentukan transparansi semua teks yang di render oleh elemen UI. Propiedad ini bersama dengan TextBox.Font , TextBox.TextSize dan TextBox.TextColor3 akan menentukan proporsi visual teks. Teks di render setelah garis besar ( 1> Class.Toolbar.TextStrokeTransparency</

Menghilangkan teks dalam menggunakan for-loop numerik adalah cara yang fantastis untuk menarik perhatian pemain ke teks yang muncul di layar.


-- 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

Contoh Kode

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

Baca Paralel

Mengontrol pemotongan teks yang ditampilkan di TextBox ini.

TextWrapped

Baca Paralel

Ketika diaktifkan, properti ini akan menampilkan teks di beberapa baris dalam ruang <a href="/reference/engine/databases">Class.Toolbar|Gui</a> sehingga <a href="/reference/engine/databases">Class.Toolbar.TextBounds</a> tidak akan pernah melebihi <a href="/reference/engine/databases">Class.GuiBase2d.AbsoluteSize</a> dari elemen GUI.

Ini dicapai dengan memecahkan baris panjang teks menjadi beberapa baris. Pemecahan garis putus akan mem preferensikan ruang putih; jika kata panjang yang tidak dipecahkan melebihi lebar elemen, kata itu akan dibagi menjadi beberapa baris.

Jika penghancuran baris lainnya menyebabkan ketinggian vertikal teks (komponen Y dari TextBox.TextBounds ) untuk melebihi ketinggian vertikal elemen (komponen Y dari GuiBase2d.AbsoluteSize), maka baris itu tidak akan rendah sama semua.

Contoh Kode

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

Baca Paralel

TextXAlignment menentukan alineasi vertikal (X-axis) teks yang di render dalam ruang UI. Fungsionerannya sama dengan property teks alineasi kiri, kanan dan pusat (tidak ada opsi justifikasi). Untuk Left dan Right, teks di render sehingga batas teks kiri/kanan hanya menyentuh sudut UI. Untuk Center, setiap baris teks diatur di pusat UI element.

Elemen ini digunakan bersama dengan TextBox.TextYAlignment untuk menentukan persyaratan tata letak teks di kedua sumbu. Elemen ini tidak akan mengubah elemen baca hanya TextBox.TextBounds dan TextBox.TextFits .

Contoh Kode

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

Baca Paralel

TextYAlignment menentukan alineasi vertikal (Y-axis) teks yang rendah dalam ruang UI. Untuk Top dan Bottom, teks di render sehingga batas-batas teks atas/bawah hanya menyentuh sudut UI. Untuk Center, teks di render sehingga ada ruang yang sama dari batas atas/bawah teks ke atas ruang elemen dan batas bawah teks ke bawah ruang elemen.

Elemen ini digunakan bersama dengan TextBox.TextXAlignment untuk menentukan persyaratan tata letak teks di kedua sumbu. Elemen ini tidak akan mengubah elemen baca hanya TextBox.TextBounds dan TextBox.TextFits .

Contoh Kode

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

Metode

CaptureFocus

void

Menggeser klien untuk fokus pada TextBox.


Memberikan nilai

void

Contoh Kode

TextBox:CaptureFocus

local ContextActionService = game:GetService("ContextActionService")
local ACTION_NAME = "FocusTheTextBox"
local textBox = script.Parent
local function handleAction(actionName, inputState, _inputObject)
if actionName == ACTION_NAME and inputState == Enum.UserInputState.End then
textBox:CaptureFocus()
end
end
ContextActionService:BindAction(ACTION_NAME, handleAction, false, Enum.KeyCode.Q)

IsFocused

Mengembalikan benar jika kotak teks fokus, atau false jika tidak.


Memberikan nilai

ReleaseFocus

void

Mengakses klien untuk menurunkan TextBox. Para parameter submitted memungkinkan Anda untuk mengatasi parameter enterPressed dalam acara TextBox.FocusLost.

Item ini harus digunakan dengan LocalScript untuk bekerja seperti yang diharapkan dalam mode online.

Kode yang ditunjukkan di bawah ini akan memaksa klien untuk tidak fokus 'Texture' 5 detik setelah dipilih:


local TextBox = script.Parent
TextBox.Focused:Connect(function()
wait(5)
TextBox:ReleaseFocus()
end)

Harap perhatikan bahwa contoh di atas mengasumsikan bahwa itu adalah di LocalScript, sebagai anak dari TextBox.

Parameter

submitted: bool
Nilai Default: false

Memberikan nilai

void

Contoh Kode

TextBox:ReleaseFocus

local textBox = script.Parent
local function onFocused()
task.wait(5)
textBox:ReleaseFocus()
end
textBox.Focused:Connect(onFocused)

Acara

FocusLost

Tembak ketika klien membiarkan fokus mereka meninggalkan TextBox - biasanya ketika klien mengklik/mengetuk di luar TextBox. Ini juga menembak jika TextBox mengharuskan fokus pada pengguna.

Dapat digunakan bersamaan dengan TextBox.Focused untuk melacak ketika TextBox mendapatkan dan kehilangan fokus.

Lihat juga UserInputService.TextBoxFocused dan UserInputService.TextBoxFocusReleased untuk fungsi serupa yang menggunakan layanan UserInputService.

Acara ini hanya akan diaktifkan ketika digunakan dalam LocalScript .

Parameter

enterPressed: bool

Boolean yang menunjukkan apakah klien menekan Enter untuk kehilangan fokus ( benar ) atau tidak ( palsu ).

inputThatCausedFocusLoss: InputObject

Sebuah instansi InputObject yang menunjukkan jenis input yang menyebabkan TextBox kehilangan fokus.


Contoh Kode

TextBox.FocusLost1

local gui = script.Parent
local textBox = gui.TextBox
local function focusLost(enterPressed)
if enterPressed then
print("Focus was lost because enter was pressed!")
else
print("Focus was lost without enter being pressed")
end
end
textBox.FocusLost:Connect(focusLost)
FocusLost

local textBox = script.Parent
local function onFocusLost(enterPressed, inputThatCausedFocusLost)
if enterPressed then
print("Player pressed Enter")
else
print("Player pressed", inputThatCausedFocusLost.KeyCode)
end
end
textBox.FocusLost:Connect(onFocusLost)

Focused

Dibakar saat TextBox mendapatkan fokus - biasanya saat klien mengklik/mengetuk TextBox untuk memulai entri teks. Ini juga menyebabkan jika TextBox mengharuskan fokus pada pengguna.

Dapat digunakan bersama dengan TextBox.FocusLost untuk melacak ketika TextBox mendapatkan dan kehilangan fokus.

Lihat juga UserInputService.TextBoxFocused dan UserInputService.TextBoxFocusReleased untuk fungsi serupa yang menggunakan layanan UserInputService.

Acara ini hanya akan diaktifkan ketika digunakan dalam LocalScript .


Contoh Kode

Focus

local textBox = script.Parent
local function onFocused()
print("Focused")
end
textBox.Focused:Connect(onFocused)

ReturnPressedFromOnScreenKeyboard