TextBox
*Bu içerik, yapay zekâ (beta) kullanılarak çevrildi ve hatalar içerebilir. Sayfayı İngilizce görüntülemek için buraya tıkla.
Bir Metin Kutusu oyuncunun metin girişi sağlar. Aynı şekilde bir TextButton ile aynı davranır, ancak tek bir Metin Kutusu tek tıkla, dokunma veya oyun konsolu seçimiyle odaklanabilir. Odaklandığında, oyuncu klavyeden Text özelliğini değişt
- Metin yoksa, PlaceholderText görünecektir. Bu, oyuncuların verilerin girişindeki tür veya biçimini göstermeyi için yararlıdır.
- Varsayılan olarak, ClearTextOnFocus özelliği etkinleştirilmiştir ve bir TextBox'un odaklandığında mevcut bir metin olmadığından emin olur. Bu, oyuncu tarafından değiştirilebilen metin olmadığından istenmeyen bir metin olmayabilir.
- Class.Toolbar.MultiLine|MultiLine özelliği, oyuncuların yeni satır karakterleriyle birden fazla satır içeriği girmesine izin verir ( \n ).
Class.ContextActionService TextBox kısayol bağlantılarını onurlandırır ve anahtar basma etkinliklerinin ContextActionService:BindAction() ile bağlantılı eylemlere otomatik olarak geçmesini önler. UserInputService.InputBegan ve ilgili etkinlikler TextBox'un odur.
Konsantrasyon Durumu
TextBox'un odak durumunu tespit etmek ve değiştirmek mümkündür:
- Oyuncu TextBox'u kullanmak zorunda kalmadan önce bir diyalog göründüğünde CaptureFocus kullanabilirsiniz; Class.ContextActionService:BindAction() kullanarak belli bir anahtarı kullanarak bir TextBox'u odaklandırabilirsiniz. Class.ContextActionService:BindAction</
- Bazı TextBox'ların odaklandığını belirlemek için IsFocused kullanarak odaklanıp odaklanmadığını kontrol edebilirsiniz. Alternatif olarak, UserInputService:GetFocusedTextBox() kullanılarak herhangi bir TextBox'un odaklandığını kontrol edebilirsiniz.
- Oyuncu metni girmeyi tamamladığında, FocusLost etkinliği başlar, belirli kişinin kaygıyı göndererek Enter tuşuna basarak metni, kaygıyı kaybettiği ile ilgili iletişim kutusuna gönder
- oynanışsırasında daha önemli bir konu ortaya çıkar, TextBox'unuzu ReleaseFocus ile geri alabilirsiniz, böylece bir oyuncunun klavye girişi oyununuza dönebilir.
Metni Düzenleme
Bir TextBox, seçimini CursorPosition ve SelectionStart özellikleri aracılığıyla destekler. kullanıyor GetPropertyChangedSignal , seçimin değiştiğini tespit etmek için oyuncuların içine kopyal
Yazı Filtreleme Uyarısı Oyunlar, oyuncuların metin kullanarak birbirleriyle iletişim kurmasını kolaylaştıran metin filtreleme eklentileri, özelleştirilmiş sohbet ve isim etiketleri gibi, TextService:FilterStringAsync() veya Chat:FilterStringAsync() ile doğru bir aksiyonfil
Kod Örnekleri
-- 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)
Özet
Özellikler
TextBox'a tıklayarak TextBox.Text özelliğini temizleyeceğini belirler.
Yazı kuruluşunun başlama noktasını belirler veya -1 değerindeyse kuruluş olmaz.
Metni render etmek için kullanılan fontu belirler.
Metni render etmek için kullanılan fontu belirler.
TextBox arasındaki satır aralığını ölçer.
TextBox ın gösterabileceği maksimum grafem sayısı.
Açık olarak ayarlandığında, TextBox içindeki metin birden fazla satıra hareket edebilir. Bu ayrıca oyuncuların enter tuşuna basarak yeni bir satıra hareket etmesine izin verir.
TextBox'a henüz hiç yazılmadığında kullanılan yazı rengini ayarlar.
TextBox'a henüz hiç yazılmadığında görüntülenen metni ayarlar.
TextBox'un zengin metin biçimi kullanarak TextBox.Text kısmını gösterip göstermediğini belirler.
Bir metin seçiminin başlangıç pozisyonunu belirler veya -1 if no text is selected.
Açık olarak ayarlanırsa, platforma girişi Roblox'un içe aktarılan klavyeden değil kullanıcı tarafından yazılabilen klavyeden kullanılır.
Arayüz öğesi tarafından oluşturulan metni belirler.
Ofsetlerde bir UI öğesi metniğinin boyutu.
Oluşturulan metnin rengini belirler.
Kullanıcının Text 'i değiştirebilir miğini belirler.
Metni TextBox'un kısıtlarına uygun olup olmadığı.
Metni render eden GUI nesnine uymak için yeniden boyutlandırır.
Ofsetlerde metnin satır yüksekliğini belirleyin.
Metin çizgisi ( Hatlı ) rengini belirler.
Metin çizgisinin ( Hatlı ) transparansını belirler.
Görüntülenen metnin transparansını belirler.
Bu TextBox'ta görüntülenen metni kısaltır.
Metni GUI öğesi alanına çok satır içinde sararıp aşırı metni keser.
Render edilen metnin yerleştirmeyi belirler.
Render edilen metnin yatay alanını belirler.
Bu UI öğesi girişi batırır mı belirler.
GuiObject 'nin mutlak büyüklüğüne göre kaynağını belirler.
Çocuk içeriğine dayalı olarak yeniden boyutlandırma olup olmadığını belirler.
Class.GuiObject arka plan rengini belirler.
Class.GuiObject arka planı ve sınırının transparansını belirler.
GuiObject sınırının rengini belirler.
Class.GuiObject sınırının boyutlarına göre ne şekilde çizildiğini belirler.
GuiObject sınırının piksel genişliğini belirler.
Bir ebeveyn GUI öğesi dışındaki çizgi şu şekilde olmalıdır: GuiObjects
oyuncumouse'unun aktif olarak GuiObject üzerine basılı olup olmadığını belirler.
Class.GuiButton ile etkileşime geçilebilir mi yoksa değil, GuiState ile GuiObject arasındaki şekli değiştirilebilir mi yoksa değil.
Class.UIGridStyleLayout ile kullanıldığında UIGridStyleLayout 'in sıralama düzenini kontrol eder.
Oyun aracı seçici aşağıya hareket ettirildiğinde seçilecek GuiObject ı ayarlar.
Oyun aracı seçici sola hareket ettirildiğinde seçilecek GuiObject ayarlarını ayarlar.
Oyun aracı seçici sağa hareket ettirildiğinde seçilecek GuiObject ayarlarını ayarlar.
Oyun aracı seçici yukarı hareket ettirildiğinde seçilecek GuiObject ayarlarını ayarlar.
Class.GuiObject 'in piksel ve skalar pozisyonunu belirler.
Class.GuiObject döndürülmesinin oluğunu belirler.
Oyunpad tarafından seçilebilir GUI ile seçilebilir olup olmadığını belirleyin.
Oyunpadlar için kullanılan varsayılan seçim süslemesini geçersiz kılar.
Oyunpad seçiminin seçtiği GuiObjects sırası.
GuiObject 'in piksel ve skalar boyutlarını belirler.
Class.GuiObject ebeveyninin boyutuna göre GuiObject üzerine inşa edilecek Class.GuiObject.Size|Size eksenlerini ayarlar.
Class.GuiObject.BackgroundTransparency|BackgroundTransparency ile TextTransparency arasındaki karışık bir özellik.
Class.GuiObject ve onun çıplaklarının renderlenmesine izin verir.
Class.GuiObject ile ilgili diğerlerine göre şekillendirilen sırayı belirler.
Bir UI öğesinin gerçek ekran pozisyonunu, piksel olarak açıklar.
Bir UI öğesinin asıl ekran dönüşümünü, dereceler olarak açıklar.
Bir UI öğesi'nin aslındaki ekran büyüklüğünü,像 olarak tanımlar.
Açık olarak ayarlandığında, yerelleştirme bu GuiBase2d ve onun aşağıdaki soyundaki tüm benzerlerine uygulanacaktır.
Bu GuiBase2d ve onun aşağıdaki soyundaki otomatik yerelleştirmeyi uygulamak için kullanılan bir referans.
Aşağı yönlü gamepad seçimi davranışını özelleştirir.
Sol yönlü gamepad seçimi davranışını özelleştirir.
Oyun direği seçim davranışını özelleştirir.
Yukarı yönlendirme içinde oyun aracı seçim davranışını özelleştirir.
Oyun başlantısı seçimi hareketinin özelleştirilmesini sağlar.
Yöntemler
Müşteriyi TextBox'a odaklanmaya zorlar.
Metni alanının odaklanmış olup olmadığına bağlı olarak geri döndürür.
Müşterinin TextBox'u odaklandırmasını sağlar.
- TweenPosition(endPosition : UDim2,easingDirection : Enum.EasingDirection,easingStyle : Enum.EasingStyle,time : number,override : bool,callback : function):bool
Bir GUI'yu yeni bir UDim2 'a düzgün bir şekilde hareket ettirir.
- TweenSize(endSize : UDim2,easingDirection : Enum.EasingDirection,easingStyle : Enum.EasingStyle,time : number,override : bool,callback : function):bool
Bir GUI'yu yeni bir UDim2 ile otomatik olarak yeniden boyutlandırır.
- TweenSizeAndPosition(endSize : UDim2,endPosition : UDim2,easingDirection : Enum.EasingDirection,easingStyle : Enum.EasingStyle,time : number,override : bool,callback : function):bool
Bir GUI'yu yeni bir boyuta ve konuma hızlıca hareket ettirir.
Etkinlikler
Müşteri odaklanma alanını TextBox bırakınca ateş eder.
Class.Toolbar konsantrasyon kazandığında ateş eder.
Bir kullanıcı, Bir insan-bilgisayar arayüzü cihazı (Farenin aşağısına basma, dokunma başlangıcı, klavye düğmesine aşağı, vb) ile etkileşime geçmeye başladığında oluşturuldu.
Bir kullanıcı, bir Human-Computer Interface cihazı (Mouse button down, touch begin, keyboard button down, etc) aracılığıyla etkileşim kurarken ateşlenir.
Bir kullanıcı, Bir İnsan-Bilgisayar Arayüzü cihazı (Farenin aşağısına gitmesi, dokunma başlangıcı, klavye düğmesi vb.) kullanımını bıraktığında başlatıldı.
Bir kullanıcının mouse'ını bir GUI öğesine hareket ettirince ateş eder.
Bir kullanıcı, farelerini bir GUI öğesinden çıkarırsa ateş eder.
Bir kullanıcının fareini GUI elemanının içinde hareket ettirirken herhangi bir zaman ateş eder.
Bir kullanıcı, fare yüzdesi aştığında, fareyi GUI öğesi üzerinde olduğunda geri çevirir.
Bir kullanıcı, fareyi bir GUI öğesi üzerinde olduğunda ileriye çektiğinde ateş eder.
Gamepad seçici ile GuiObject'e odaklanıldığında yanıyor.
Gamepad seçici Gameui'yu odaklanmaktan vazgeçtiğinde yanıyor.
Oyuncu başladığında, devam ettiğinde ve UI öğesi üzerinde uzun basılı tutulduğunda ateşlenir.
- TouchPan(touchPositions : Array,totalTranslation : Vector2,velocity : Vector2,state : Enum.UserInputState):RBXScriptSignal
Oyuncu parmaklarını UI elemanında hareket ettirirken ateş eder.
- TouchPinch(touchPositions : Array,scale : number,velocity : number,state : Enum.UserInputState):RBXScriptSignal
Oyuncu iki parmak kullanarak bir çıkarma veya çekme hareketini yaptığında ateş eder.
- TouchRotate(touchPositions : Array,rotation : number,velocity : number,state : Enum.UserInputState):RBXScriptSignal
Oyuncu iki parmak kullanarak döndürme hareketi yaptığında ateş eder.
Oyuncu UI elementinde bir swipe hareketi yaptığında ateş eder.
Oyuncu UI elementinde bir dokunma hareketi yaptığında ateş eder.
- SelectionChanged(amISelected : bool,previousSelection : GuiObject,newSelection : GuiObject):RBXScriptSignal
Gamepad seçimi hareket ettiğinde, ayrıldığında veya bağlı GuiBase2d'de veya ilgili herhangi bir GuiObjeleri değiştirdiğinde ateş eder.
Özellikler
ContentText
CursorPosition
CursorPosition Text Cursor'ınızın başlangıcını veya -1'i belirlerse TextBox'unuzun ilk başındaki konumunu belirler. Bir değer 1, TextBox'unuzun ilk başındaki ilk başındaki ilk başındaki ilk başındaki başındaki başındaki başındaki başınd
Bu özelliğin birimlerinin başlıca bir abya veya bir abya gibi görünmesi nedeniyle, birçok kullanıcı, emoji gibi birçok diğer Unicode karakterinin 2>1 başına2> ile bitmesini sağlar. durum, bir oyuncu TextBox'a "Merhaba👋
Kod Örnekleri
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)
Font
Font özelliği, UI'nin metnini render etmesi için birkaç önceden tanımlanmış fonts ile birini seçer. Bazı fontların şişman veya hafif çeşitleri vardır (font ağırlığı veya font stilı olmayan).
“Emeği” fontu dışında, her font TextBox.TextSize özelliğiyle aynı yükseklikte metin gösterir. “Kod” fontu tek monospace font'udur. Bu, her karakterin aynı genişliğe ve yüksekliğe oranında 1:2’lik genişliğine sahip olduğu özellikteki yüksek özell
Bu özellik, TextBox.FontFace özelliğiyle senkronize edilir. Özellik,Font'ı ayarlarken,FontFace'i Font.fromEnum(value) olarak ayarlanır.
Kod Örnekleri
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
FontFace özelliği,Font özelliğine benzer, ancakFont枚'de mevcut olmayan fontları ayarlamayı sağlar.
Bu özellik, TextBox.Font özelliğiyle senkronize edilir. FontFace'i ayarlarken, font Enum.Font.Unknown değeriyle veya Ennum.Font olarak ayarlanır. Eğer eşleştirme yoksa, bu özellik 1>Class.Toolbar.Font1> değerine ayarlanır.
LineHeight
Çizgilerin yüksekliğini, çizgi aralarının TextBox ile çarpılır boyutunu kontrol eder, böylece çizgilerin yüksekliği ile ilgili değerler 1.0 ila 3.0 arasındadır, varsayılan 1.0'dır.
MaxVisibleGraphemes
Bu özellik, TextBox 'de gösterilen maksimum grafem sayısını (ya TextBox.PlaceholderText ya da TextBox.Text ) kontrol eder, bunun 1>Class.Toolbar.PlaceholderText1> veya 4>Class.Toolbar.Text4> ile gösterildiğine bağlı olarak.
Özellik, görünür grafiklerin pozisyonunu veya boyutunu değiştirmez - tasarım tüm grafiklerin görünür olması gibi hesaplanacaktır.
Özelliği -1 olarak ayarlamak sınırı devre dışı bırakır ve tüm TextBox.Text 'i gösterir.
MultiLine
Açık olarak ayarlandığında, TextBox içindeki metin birden fazla satıra hareket edebilir. Bu ayrıca oyuncuların enter tuşuna basarak yeni bir satıra hareket etmesine izin verir.
OpenTypeFeatures
OpenTypeFeaturesError
RichText
Bu özellik, TextBox 'in zengin metin biçimi kullanarak TextBox.Text kısmını gösterip göstermediğini belirler. Zengin metin, basit metin etiketlerini kullanarak kısmını şişko, altı çizgisi, belirli renkler ve daha fazlasını gösterir.
Zengin metni kullanmak için, sadece şekillendirme etiketlerini TextBox.Text ipucuna ekleyin.
Not edin ki, TextBox bu özelliği etkinleştirdiğinde ve kutu odaklandığında, kullanıcı kutuyu odaklandığında etiketleri düzenleyebilir ve etiketlerin tüm biçimleme etiketlerini içeren zengin bir XML yapısını yazabilir. Odaklanma kaybına izin verildiğinde, metin otomatik olarak etiketleri zengin bir metin olarak işleyebilir ve gör
SelectionStart
Bir metin seçiminin başlangıç pozisyonunu belirler veya -1, TextBox'un seçilmiş metin aralığı yoksa. Değer -1 veya CursorPosition ile eşdeğerse, seçim başlangıcı seçim yapılır. SeçimStart, seçimin başlangıcında kurulursa, seçim başlangıcı seçim
Kod Örnekleri
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
Açık olarak ayarlanırsa, platforma girişi Roblox'un içe aktarılan klavyeden değil kullanıcı tarafından yazılabilen klavyeden kullanılır.
Text
Metin öğesi, UI öğesi tarafından görüntülenen içeriği belirler. Görsel öğeleri, TextBox.TextColor3, Class.Toolbar.
Emojileri (örneğin, 😃) ve diğer sembolleri renderebilirsiniz. Bu özel semboller TextBox.TextColor3 özelliğine etkilenmez. Bunlar Script ve LocalScript nesnelerine, ayrıca Özellikler penceresindeki alana yapıştırılabilir.
Bu özellik yeni satır karakterleri içerebilir, ancak Özellikler penceresinde yeni satır karakterleri yazmak mümkün değildir. Aynı şekilde, bu özellik bir tab karakteri içerebilir, ancak yerine boşluk olarak görüntülenir.
Kod Örnekleri
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
Yalnızca okuma sırasında yerleştirme işlemi yapılan özellik Yazı Bölgeleri, çizgi olarak görüntülenen metni yüzdesel olarak yerleştirme işlemi yapar. Diğer bir deyişle, eğer metni yüzüğüne uymak için çizgiyi kullanmaya çalışırsanız, bu özellik Yazı Bölgeleri'nin gerektiği minimum boyutu yansıtır.
Class.TextService:GetTextSize() kullanarak, bir TextLabel'a verilen bir dizikullanarak TextBounds'ın ne olacağını öngörebilirsiniz, TextBox.Font , TextBox.TextSize ve çerçeve boyutu.
Kod Örnekleri
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
Bu özellik, bir GUI öğesi tarafından tüm metni rendere eden renk belirleyen bir özelliktir. Bu özellik, TextBox.Font , TextBox.TextSize ve 1> Class.Toolbar.TextTransparency1> ile birlik
Metni oyuncular tarafından kolayca okunabilmelidir! Beyaz, gri veya siyah gibi az çıplaklığı olan renkleri seçin. TextBox.BackgroundColor3 arka planının rengiyle metni çevrimlemeyi deneyin. Eğer öğenin arka planının bir kısmını giz
Kod Örnekleri
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
TextEditable
TextEditable kullanıcının Text ile ilgili girdi aracılığıyla değiştirebilirliğine karar verir. Bu özellik devre dışı bırakıldığında, ClearTextOnFocus değerini değiştirerek TextBox
TextScaled
TextScaled'i kullanmayı tercih etmeyin, bunun yerine AutomaticSize , mümkün olduğunca iyi bir görsel sonucu veren yeni bir yöntemi dynamik olarak kullanmayı öneririz.
TextScaled özelliği, metni tüm UI öğesi alanını doldurmak için skalanıp skalanmadığını belirler. Bu aktifleştirildiğinde, TextBox.TextSize görülmez ve TextBox.TextWrapped otomatik olarak etkinleştirilir. Bu özellik, BillboardGuis i
Ekran alanı UI için bu özellik kullanıldığında, mümkün olan tüm metin boyutlarını sınırlamak için bir UITextSizeConstraint kullanmak isteyebilir.
TextScaled ve AutomaticSize
Geliştiriciler TextScaled'i kullanmayı denememelidir ve aksine AutomaticSize özelliğinden yararlanmalıdır. İki özelliğin ana farkları şunların arasındadır:
- TextScaled, UI'yi yerleştirmek için içeriği (metni) ölçeği ayarlar. Dikkatli bir şekilde, bazı metinler yanlış okunabilir ifade ölçeği çok küçük skalanır.
- AutoSize, içeriği yerleştirmek için UI'yi yeniden boyutlandırır.
AutomaticSize ile, UI'nizi düzenleme boyutunu (yazı) içeriğiyle bir arada tutarken ayarlayabilirsiniz. Ayrıca, otomatik boyutlandırma kullanımı hakkında daha fazla bilgi için UI Otomatik Boyutlu Boyutlu makalesine bakın.
Her iki TextScaled ve AutomaticSize'ı aynı UI öğesi için uygulamayınızı öneririz. Eğer her iki özelliği de uygularsanız:
- AutoSize, bir GuiObject 'in kullanabileceği maksimum alanı belirler (burada, metni)
- TextScaled, AutomaticSize tarafından belirlenen mevcut alanı kullanarak, mevcut alanın boyutuna uygun olarak font büyüklüğünü artırır, böylece maksimum font büyüklüğü (100) olursa, boyut sınırları yoksa
- Sonuç: yazı 100 karakter boyutuna gidecek ve UI öğesi bu yazıya uyacak şekilde genişleyecektir
AutomaticSize ve TextScaled'i aynı anda kullanmak, otomatik büyüklük ve yazı ölçeği kapalı olduğunda önemli ölçekleme farklarına yol açabilir.
Kod Örnekleri
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 öğesi, render edilen tekstin bir satırının yüksekliğini belirler. Birim Offset'tir, değil (çoğu metin düzenleme programlarında kullanılan nokta). "Miras" fontu bu öğeri tutmaz.
Kod Örnekleri
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 öğesi, çizilen metnin renk veya hatlı çizgisini belirler. Bu öğe ve TextBox.TextStrokeTransparency çizgi çizimi özelliklerini belirler.
Metin çizgisi normal metinten önce görülür ve sadece +/- 1 piksel ofsetindeki aynı metni 4 kat rendeleme ile çizilir. Metin çizgisi rendelemesi bağımsız ve aynı anda TextBox.TextColor3 ve TextBox.TextTransparency ile çalışır.
Kod Örnekleri
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 öğesi, çizilen metnin çizgisini veya hatlının şeffaflığını ayarlar. Bu öğe ve TextBox.TextStrokeColor3 çizgi çizme öğesinin görsel özelliklerini belirler.
Metin çizgisi normal metni rendere eder ve sadece +/- 1 piksel ofsetindeki 4 rendersi ile aynıdır. Text çizgisi renderingi
Kod Örnekleri
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
TextColor3 öğesi, bir UI öğesi tarafından oluşturulan tüm yazının görünürlüğünü belirler. Bu öğe, TextBox.Font , TextBox.TextSize ve TextBox.TextColor3 ile birlikte, yazının görünürlüğünü belirleyece
Bir sayısal for-Loop kullanarak kaydırılan metni oyuncunun ekranda görünen metne çekmek harika bir yoldur.
-- Count backwards from 1 to 0, decrementing by 0.1for i = 1, 0, -0.1 dotextLabel.TextTransparency = itask.wait(0.1)end
Kod Örnekleri
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
Etkinleştirildiğinde, bu özellik bir GUI elemanının alanında çok satır içinde metni gösterir, böylece TextBox.TextBounds GUI elemanının GuiBase2d.AbsoluteSize 'i aşmaz.
Bu, uzun metni birden fazla satıra ayırarak elde edilir. Satır kırma beyaz boşluk tercih eder; uzun bozulmamış bir kelime öğenin genişliğini aşarsa, kelime birden fazla satıra ayılır.
Eğer daha fazla satır bozulması metni (TextBox.TextBounds )'nin yatay yüksekliğini aşarsa, o satır hiç tümü.
Kod Örnekleri
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, UI öğesi alanındaki yazının yerini belirler (X ekseninde). Sol, sağ ve merkez değerleriyle (justify seçeneği yok). Sol ve sağ için, yazının sol/sağ kısmı UI öğesi kutusunun kenarına dokunur. Merkez için her bir satırınızın merkezine sağ/sola.
Bu özellik, TextBox.TextYAlignment ile birleştirilmiş olarak kullanılır, böylece iki eksende de tamamen metin yanını belirlemek için. Bu özellik okuma sadece özelliklerini etkilemez TextBox.TextBounds ve TextBox.TextFits .
Kod Örnekleri
-- 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, bir UI öğesi alanındaki yazının yerini belirler (Y ekseninde). Tepme veya solma için yazının üst veya alt kısımlarının kenarına dokunur. Merkez için, yazının üst kısmının üst kısmına eşit bir alan vardır. Tüm elementlerin üst kısmının üst kısmına dokunur
Bu özellik, TextBox.TextXAlignment ile birleştirilmiş olarak kullanılır, böylece iki eksende de aynı özelliklerin okunabilirliğini belirlemek için tamamen belirlenmiştir. Bu özellik okuma sadece özelliklerini etkilemez TextBox.TextBounds ve TextBox.TextFits .
Kod Örnekleri
-- 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
Yöntemler
CaptureFocus
Müşteriyi TextBox'a odaklanmaya zorlar.
Dönüşler
Kod Örnekleri
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)
ReleaseFocus
Müşterinin TextBox'u boşaltmasını zorlar. submitted parametresi, enterPressed etkinliğindeki TextBox.FocusLost parametresini aşırı yükleyebilirsiniz.
Bu öğe, LocalScript ile birlikte kullanılmalıdır, böylece beklenen şekilde çalışır.
Aşağıdaki kod, seçildikten sonra 'Texture'yi 5 saniye boyunca odaklanmayı ortadan kaldıracağını gösterir:
local TextBox = script.Parent
TextBox.Focused:Connect(function()
wait(5)
TextBox:ReleaseFocus()
end)
Yukarıdaki örnek, bir TextBox'un bir çocuğu olarak bir Yerel Kodlama'da olduğunu varsayar.
Parametreler
Dönüşler
Kod Örnekleri
local textBox = script.Parent
local function onFocused()
task.wait(5)
textBox:ReleaseFocus()
end
textBox.Focused:Connect(onFocused)
Etkinlikler
FocusLost
Müşteri konsantrasyonunu TextBox'tan ayrılırken ateş eder - genellikle bir müşteri dışında TextBox'a tıklayın/dokunun. Bu ayrıca bir TextBox'un konsantrasyonunu kullanıcıya zorladığında da ateş eder.
Bir TextBox'un odaklanma kazancını veya kaybını takip etmek için TextBox.Focused ile birlikte kullanılabilir.
Ayrıca, UserInputService.TextBoxFocused ve UserInputService.TextBoxFocusReleased gibi, Kullanıcı Giriş Hizmetine dayanan benzer işlevler için bakınız.
Bu etkinlik sadece bir LocalScript içinde kullanıldığında başarılı olacaktır.
Parametreler
Enter'a basıp odaklanmayı kaybetmeyeceğini gösteren bir boBoolean ( true ) veya hayır ( false )'i gösterir.
TextBox'un odaklanmasını kaybettiren giriş türünü gösteren bir Class.InputObject instansı.
Kod Örnekleri
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)
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
Class.Toolbar'ın odaklanmasında yanı sıra - genellikle bir kliğin/dokunmasının bir TextBox'a başladığında - bu şekilde de yanı sıra çalışır. Ayrıca, bir TextBox'ın kullanıcıyı odakladığında da yanı sıra çalışır.
Bir TextBox'un konsantrasyon kazanıp kaybettiğini takip etmek için TextBox.FocusLost ile birlikte kullanılabilir.
Ayrıca, UserInputService.TextBoxFocused ve UserInputService.TextBoxFocusReleased gibi, Kullanıcı Giriş Hizmetine dayanan benzer işlevler için bakınız.
Bu etkinlik sadece bir LocalScript içinde kullanıldığında başarılı olacaktır.
Kod Örnekleri
local textBox = script.Parent
local function onFocused()
print("Focused")
end
textBox.Focused:Connect(onFocused)