ImageButton

Pokaż przestarzałe

*Ta zawartość została przetłumaczona przy użyciu narzędzi AI (w wersji beta) i może zawierać błędy. Aby wyświetlić tę stronę w języku angielskim, kliknij tutaj.

An ImageButton zachowuje się podobnie do An ImageLabel w odniesieniu do renderowania, z dodatkowymi zachowaniami GuiButton .

Podsumowanie

Właściwości

Właściwości odziedziczeni z: GuiButtonWłaściwości odziedziczeni z: GuiObjectWłaściwości odziedziczeni z: GuiBase2d

Metody

Metody odziedziczeni z: GuiObject

Zdarzenia

Zdarzenia odziedziczeni z: GuiButtonZdarzenia odziedziczeni z: GuiObjectZdarzenia odziedziczeni z: GuiBase2d

Właściwości

HoverImage

ContentId
Odczyt równoległy

ID tekstury, które zostanie użyte, gdy ImageButton zostanie przewalone.

HoverImageContent

Odczyt równoległy

Image

ContentId
Odczyt równoległy

Właściwość ta jest właściwością typu zawartości, która powinna zawierać identyfikator zasobu decalu lub obrazu przesłanego do Roblox.Funkcjonuje identycznie do Decal.Texture w odniesieniu do ładowania obrazu z Roblox.Wyrenderowany obraz zostanie skoloryzowany za pomocą ImageColor3 .

Zauważ, że można wyrenderować obraz jako płytki, skalowany do pasuje lub 9-sliced poprzez dostosowanie właściwości ScaleType.

Przykłady kodu

This code sample causes an ImageLabel/ImageButton to display a red padlock. When the mouse is hovered, it changes to a green unlocked padlock.

Image Hover Lock

local imageLabel = script.Parent
-- The images in this example are 64x64
imageLabel.Size = UDim2.new(0, 64, 0, 64)
local function unlock()
imageLabel.Image = "rbxassetid://284402785" -- Unlocked padlock (64x64)
imageLabel.ImageColor3 = Color3.new(0, 0.5, 0) -- Dark green
end
local function lock()
imageLabel.Image = "rbxassetid://284402752" -- Locked padlock (64x64)
imageLabel.ImageColor3 = Color3.new(0.5, 0, 0) -- Dark red
end
-- Connect events; our default state is locked
imageLabel.MouseEnter:Connect(unlock)
imageLabel.MouseLeave:Connect(lock)
lock()

ImageColor3

Odczyt równoległy

Właściwość ta określa, jak obraz jest koloryzowany.Gdy ustawiono na biały, nie występuje koloryzacja.Właściwość ta jest bardzo przydatna do ponownego wykorzystania zasobów obrazowych: Jeśli źródłowy obraz jest całkowicie biały z przejrzystością, możesz ustawić cały kolor obrazu naraz za pomocą tej właściwości.

Przykłady kodu

This code sample causes an ImageLabel/ImageButton to display a red padlock. When the mouse is hovered, it changes to a green unlocked padlock.

Image Hover Lock

local imageLabel = script.Parent
-- The images in this example are 64x64
imageLabel.Size = UDim2.new(0, 64, 0, 64)
local function unlock()
imageLabel.Image = "rbxassetid://284402785" -- Unlocked padlock (64x64)
imageLabel.ImageColor3 = Color3.new(0, 0.5, 0) -- Dark green
end
local function lock()
imageLabel.Image = "rbxassetid://284402752" -- Locked padlock (64x64)
imageLabel.ImageColor3 = Color3.new(0.5, 0, 0) -- Dark red
end
-- Connect events; our default state is locked
imageLabel.MouseEnter:Connect(unlock)
imageLabel.MouseLeave:Connect(lock)
lock()

ImageContent

Odczyt równoległy

Właściwość ta powinna zawierać URI zasobu lub odniesienie do obiektu EditableImage.Adres URL zasobu może odwoływać się do zdjęcia lub obrazu przesłanego do Roblox.Funkcjonuje identycznie do Decal.Texture w odniesieniu do ładowania obrazu.

Rendowany obraz zostanie skoloryzowany za pomocą ImageColor3 .Można wyrenderować obraz jako płytki, skalowany do pasuje lub 9-sliced poprzez dostosowanie właściwości ScaleType.

ImageRectOffset

Odczyt równoległy

Właściwość ta określa przesunięcie pikseli (z lewej góry) obszaru obrazu do wyświetlenia, umożliwiając częściowe wyświetlenie obrazu w połączeniu z ImageRectSize.

Przykłady kodu

This code sample uses ImageRectOffset/ImageRectSize in order to play an animation of a man throwing a punch

Image Animation using Spritesheet

-- Place this in an ImageLabel/ImageButton with size 256x256
local imageLabel = script.Parent
-- The following image is 1024x1024 with 12 frames (256x256)
-- The frames play an animation of a man throwing a punch
imageLabel.Image = "rbxassetid://848623155"
imageLabel.ImageRectSize = Vector2.new(256, 256)
-- The order of the frames to be displayed (left-to-right, then top-to-bottom)
local frames = {
Vector2.new(0, 0),
Vector2.new(1, 0),
Vector2.new(2, 0),
Vector2.new(3, 0),
Vector2.new(0, 1),
Vector2.new(1, 1),
Vector2.new(2, 1),
Vector2.new(3, 1),
Vector2.new(0, 2),
Vector2.new(1, 2),
Vector2.new(2, 2),
Vector2.new(3, 2),
}
-- Animate the frames one at a time in a loop
while true do
for _, frame in ipairs(frames) do
imageLabel.ImageRectOffset = frame * imageLabel.ImageRectSize
task.wait(0.1)
end
end

ImageRectSize

Odczyt równoległy

Właściwość ta określa rozmiar piksela obszaru obrazu do wyświetlenia, umożliwiając częściowe wyświetlenie obrazu w połączeniu z ImageRectOffset.Jeśli którykolwiek wymiar jest ustawiony na 0, cały obraz jest wyświetlany zamiast tego.

Przykłady kodu

This code sample uses ImageRectOffset/ImageRectSize in order to play an animation of a man throwing a punch

Image Animation using Spritesheet

-- Place this in an ImageLabel/ImageButton with size 256x256
local imageLabel = script.Parent
-- The following image is 1024x1024 with 12 frames (256x256)
-- The frames play an animation of a man throwing a punch
imageLabel.Image = "rbxassetid://848623155"
imageLabel.ImageRectSize = Vector2.new(256, 256)
-- The order of the frames to be displayed (left-to-right, then top-to-bottom)
local frames = {
Vector2.new(0, 0),
Vector2.new(1, 0),
Vector2.new(2, 0),
Vector2.new(3, 0),
Vector2.new(0, 1),
Vector2.new(1, 1),
Vector2.new(2, 1),
Vector2.new(3, 1),
Vector2.new(0, 2),
Vector2.new(1, 2),
Vector2.new(2, 2),
Vector2.new(3, 2),
}
-- Animate the frames one at a time in a loop
while true do
for _, frame in ipairs(frames) do
imageLabel.ImageRectOffset = frame * imageLabel.ImageRectSize
task.wait(0.1)
end
end

ImageTransparency

Odczyt równoległy

Właściwość ta określa alfa obrazu renderowanego elementu.Wartość 0 jest całkowicie niejasna, a wartość 1 jest całkowicie przejrzysta (niewidoczna).Właściwość ta zachowuje się podobnie do GuiObject.BackgroundTransparency lub BasePart.Transparency.

Jeśli wyłączysz renderowanie obrazów poprzez ustawienie ImageTransparency na 1, uzyskasz prosty prostokąt, który można użyć jako przycisk.Jednak może lepiej użyć pustego TextButton zamiast tego.

IsLoaded

Tylko do odczytu
Bez replikacji
Odczyt równoległy

Właściwość ta wskazuje, czy właściwość Image została załadowana z Roblox. Obrazy odrzucone przez moderację nigdy się nie wczytywać.

Przykłady kodu

This code sample measures how long an ImageLabel or ImageButton takes to load an image. If the image was already loaded, this will be 0.

Image Load Time

local imageLabel = script.Parent
local startTime = workspace.DistributedGameTime
-- Wait for the image to load
while not imageLabel.IsLoaded do
task.wait()
end
-- Measure and display how long it took to load
local deltaTime = workspace.DistributedGameTime - startTime
print(("Image loaded in %.3f seconds"):format(deltaTime))

PressedImage

ContentId
Odczyt równoległy

ID tekstury, które można ustawić jako właściwość ImageButton. Po naciśnięciu przycisku wyrenderuje to obraz.

PressedImageContent

Odczyt równoległy

ResampleMode

Odczyt równoległy

Określa, jak wygląda obraz, gdy jest skalowany.Domyślnie obraz wygładza teksturę, gdy jest wyświetlany większy lub mniejszy niż jego rozmiar w pamięci teksturowej.W przeciwieństwie do tego, Enum.ResamplerMode.Pixelated zachowuje ostre krawędzie pikseli obrazu.

Odczyt równoległy

Właściwość ta określa, w jaki sposób właściwość Image jest renderowana, gdy rozmiar elementu interfejsu różni się od rozmiaru źródłowego obrazu.

Domyślnie właściwość ta wynosi Enum.ScaleType.Stretch, co po prostu rozciągnie/skompresuje wymiary obrazu, aby dokładnie pasowały do przestrzeni elementu interfejsu użytkownika.Ponieważ przeźroczyste piksele są ustawione na czarny kolor podczas przesyłania do Roblox, przeźroczyste obrazy powinny stosować mieszanie alfa, aby uniknąć czarnego obrysu wokół skalowanych obrazów.

Dla Enum.ScaleType.Slice , gdy skalowanie w górę, krawędzie pozostaną rozmiarem obrazu źródłowego.Krawędzie obrazu rozciągną się do szerokości/wysokości obrazu.Wreszcie, centrum obrazu rozciągnie się, aby wypełnić środkową część obrazu.Aby dowiedzieć się więcej o 9-przyciętych obrazach, zobacz UI 9-Slice Design.

Dla Enum.ScaleType.Tile rozmiar każdej płytki obrazu jest określany przez właściwość TileSize.

SliceCenter

Odczyt równoległy

Właściwość ta ustawia granice kawałków obrazu o grubości 9, gdy ScaleType jest ustawiony na Enum.ScaleType.Slice.

Aby dowiedzieć się więcej o 9-przyciętych obrazach, zobacz UI 9-Slice Design.

SliceScale

Odczyt równoległy

Skaluje krawędzie 9-planszy według określonej proporcji.Oznacza to, że krawędzie wokół 9-plastra będą rosły tak, jak gdybyś przesłał nową wersję tekstury uproszczoną.Domyślnie do 1.0.

Jako mnożnik dla granic 9-plastra, jest użyteczny do ponownego wykorzystania jednego zaokrąglonego obrazu krawędzi dla wielu promieni.

Zobacz także ScaleType, który określa, jak skalować obraz, jeśli zostanie wyświetlony w elementzie interfejsu użytkownika, którego rozmiar różni się od rozmiaru źródłowego obrazu.

TileSize

Odczyt równoległy

Ustawia rozmiar płytek począwszy od górnego lewego kąta obrazu.Domyślne wartości UDim21, 0, 1, 0 ; składniki skali komponentów z UDim2 skalować będą płytkę w oparciu o rozmiar ImageButton podczas gdy składniki odległości są w pikselach surowych.Na przykład skala 0.5 oznacza, że płytka będzie miała połowę rozmiaru ImageButton w odpowiadającym osi.

Właściwość ta jest aktywna tylko wtedy, gdy właściwość ScaleType jest ustawiona na Enum.ScaleType.Tile.

Metody

Zdarzenia