ImageButton

Visualizza obsoleti

*Questo contenuto è tradotto usando AI (Beta) e potrebbe contenere errori. Per visualizzare questa pagina in inglese, clicca qui.

Un ImageButton si comporta in modo simile a un ImageLabel in termini di rendering con i comportamenti aggiuntivi di un GuiButton . Definisce le stesse proprietà di rendering dell'immagine come una ImageLabel .

Puoi disabilitare la rendering dell'immagine impostando ImageButton.ImageTransparency a 1. Ciò lascerà un rettangolo vuoto che può essere utilizzato come pulsante. Tuttavia, potrebbe essere meglio utilizzare un vuoto TextButton per questo.

Campioni di codice

ImageButton Press Color

-- Place this code in a LocalScript in an ImageButton
local imageButton = script.Parent
local colorNormal = Color3.new(1, 1, 1) -- white
local colorHover = Color3.new(0, 1, 0) -- green
local colorPress = Color3.new(1, 0, 0) -- red
-- This is a 32x32 image of a backpack
imageButton.Image = "rbxassetid://787458668"
imageButton.BackgroundTransparency = 1
local function onActivated()
print("open the inventory")
end
local function onPressed()
imageButton.ImageColor3 = colorPress
end
local function onReleased()
imageButton.ImageColor3 = colorHover
end
local function onEntered()
imageButton.ImageColor3 = colorHover
end
local function onLeft()
imageButton.ImageColor3 = colorNormal
end
imageButton.MouseEnter:Connect(onEntered)
imageButton.MouseLeave:Connect(onLeft)
imageButton.MouseButton1Down:Connect(onPressed)
imageButton.MouseButton1Up:Connect(onReleased)
imageButton.Activated:Connect(onActivated)
-- Start with the default, non-hovered state
onLeft()

Sommario

Proprietà

  • HoverImage:ContentId
    Lettura Parallela

    Un ID della texture che verrà utilizzato quando il ImageButton viene passato in mouse.

  • Image:ContentId
    Lettura Parallela

    Il contenuto dell'immagine visualizzato dall'elemento UI.

  • Lettura Parallela

    Determina il modo in cui verrà colorata un'immagine renduta.

  • Nascosto
    Lettura Parallela
  • Lettura Parallela

    L'Offset in pixel della sub-area di un'immagine da mostrare.

  • Lettura Parallela

    Determina la dimensione in pixel dell'area sottostante di un'immagine da visualizzare.

  • Lettura Parallela

    Determina la trasparenza dell'immagine renduta.

  • Sola Lettura
    Non Replicato
    Lettura Parallela

    Indica se l'immagine è stata caricata completamente dal sito Web Roblox.

  • PressedImage:ContentId
    Lettura Parallela

    Un textureId che verrà utilizzato quando verrà premuto un ImageButton .

  • Seleziona il modo di resampling dell'immagine per il pulsante.

  • Lettura Parallela

    Determina il modo in cui un'immagine si adatta se viene visualizzata in un elemento UI la cui dimensione differs dalla dimensione di origine.

  • Lettura Parallela

    Imposta i confini di taglia di un'immagine a 9 sliced.

  • Lettura Parallela

    Scala le 9 code di边 by the specified ratio.

  • Lettura Parallela

    Imposta la dimensione di riempimento del ImageButton.

Proprietà provenienti da GuiButton
  • Lettura Parallela

    Determina se il pulsante cambia colore automaticamente quando il mouse si posiziona su di esso o lo si fa clic.

  • Lettura Parallela

    Se vero mentre l'elemento GUI è visibile, il mouse non sarà bloccato a meno che il pulsante del mouse destro non sia down.

  • Lettura Parallela

    Una proprietà booleana che indica se l'oggetto è stato selezionato.

  • Lettura Parallela

    Imposta lo stile del GuiButton in base a una lista di stili pre-determinati.

Proprietà provenienti da GuiObjectProprietà provenienti da GuiBase2d

Metodi

Metodi provenienti da GuiObject

Eventi

Eventi provenienti da GuiButtonEventi provenienti da GuiObjectEventi provenienti da GuiBase2d

Proprietà

HoverImage

ContentId
Lettura Parallela

Un ID della texture che verrà utilizzato quando il ImageButton viene passato in mouse.

Image

ContentId
Lettura Parallela

La proprietà Image è una proprietà di tipo contenuto che dovrebbe contenere l'ID dell'asset di un Decal o Image sul sito Web Roblox. Funziona identificativamente a Decal.Texture con riferimento al caricamento dell'immagine dal sito Web Roblox. L'immagine renderizzata sarà colorata utilizz

Campioni di codice

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

Lettura Parallela

La proprietà ImageColor3 determina come un'immagine è colorata. Quando è impostata su bianco, non si verifica alcuna colorazione. Questa proprietà è molto utile per riutilizzare le risorse dell'immagine: se l'immagine di origine è completamente bianca con trasparenza, puoi impostare il colore dell'intera immagine con questa Proprietà.

Campioni di codice

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()
Rainbow Image

local RunService = game:GetService("RunService")
local imageLabel = script.Parent
local function onRenderStep()
imageLabel.ImageColor3 = Color3.fromHSV(workspace.DistributedGameTime / 8 % 1, 1, 1)
end
RunService.RenderStepped:Connect(onRenderStep)

ImageContent

Nascosto
Lettura Parallela

ImageRectOffset

Lettura Parallela

Consente la visualizzazione parziale di un'immagine in connessione con ImageButton.ImageRectSize . Questa proprietà determina l'Offset dei pixel (dal lato sinistro) dell'area dell'immagine da visualizzare.

Questa proprietà si comporta identificativamente a ImageLabel.ImageRectSize .

Campioni di codice

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
Image ScaleType Demo

local imageLabel = script.Parent
-- Set the source image to be a 64x64 padlock
imageLabel.Image = "rbxassetid://284402752"
imageLabel.BackgroundTransparency = 0
imageLabel.BackgroundColor3 = Color3.new(1, 1, 1) -- White
imageLabel.ImageColor3 = Color3.new(0, 0, 0) -- Black
local function resizeInACircle()
for theta = 0, 2, 0.02 do
imageLabel.Size = UDim2.new(
0,
100 + math.cos(theta * 2 * math.pi) * 50,
0,
100 + math.sin(theta * 2 * math.pi) * 50
)
task.wait()
end
end
while true do
-- Stretch simply stretches the source image to fit
-- the UI element's space
imageLabel.ScaleType = Enum.ScaleType.Stretch
resizeInACircle()
-- Tile will render the source image multiple times
-- enough to fill the UI element's space
imageLabel.ScaleType = Enum.ScaleType.Tile
imageLabel.TileSize = UDim2.new(0, 64, 0, 64)
resizeInACircle()
-- Slice will turn the image into a nine-slice UI.
imageLabel.ScaleType = Enum.ScaleType.Slice
imageLabel.SliceCenter = Rect.new(30, 30, 34, 34)
resizeInACircle()
end

ImageRectSize

Lettura Parallela

Consente la visualizzazione parziale di un'immagine in conjunction con ImageButton.ImageRectOffset . Questa proprietà determina la dimensione del pixel dell'area dell'immagine da visualizzare. Se entrambe le dimensioni sono impostate a 0, l'intera immagine viene visualizzata invece.

Questa proprietà si comporta identificativamente a ImageLabel.ImageRectOffset .

Campioni di codice

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
Image ScaleType Demo

local imageLabel = script.Parent
-- Set the source image to be a 64x64 padlock
imageLabel.Image = "rbxassetid://284402752"
imageLabel.BackgroundTransparency = 0
imageLabel.BackgroundColor3 = Color3.new(1, 1, 1) -- White
imageLabel.ImageColor3 = Color3.new(0, 0, 0) -- Black
local function resizeInACircle()
for theta = 0, 2, 0.02 do
imageLabel.Size = UDim2.new(
0,
100 + math.cos(theta * 2 * math.pi) * 50,
0,
100 + math.sin(theta * 2 * math.pi) * 50
)
task.wait()
end
end
while true do
-- Stretch simply stretches the source image to fit
-- the UI element's space
imageLabel.ScaleType = Enum.ScaleType.Stretch
resizeInACircle()
-- Tile will render the source image multiple times
-- enough to fill the UI element's space
imageLabel.ScaleType = Enum.ScaleType.Tile
imageLabel.TileSize = UDim2.new(0, 64, 0, 64)
resizeInACircle()
-- Slice will turn the image into a nine-slice UI.
imageLabel.ScaleType = Enum.ScaleType.Slice
imageLabel.SliceCenter = Rect.new(30, 30, 34, 34)
resizeInACircle()
end

ImageTransparency

Lettura Parallela

ImageTransparency determina l'alfa di un'immagine UI renduta. Un valore di 0 è completamente opaco, e un valore di 1 è completamente trasparente (invisibile). Questa proprietà si comporta allo stesso modo di GuiObject.BackgroundTransparency o BasePart.Transparency .

Campioni di codice

Oscillate ImageTransparency

local RunService = game:GetService("RunService")
local imageLabel = script.Parent
local function onRenderStep()
-- Oscillate ImageTransparency from 0 to 1 using a sine wave
imageLabel.ImageTransparency = math.sin(workspace.DistributedGameTime * math.pi) * 0.5 + 0.5
end
RunService.RenderStepped:Connect(onRenderStep)

IsLoaded

Sola Lettura
Non Replicato
Lettura Parallela

La proprietà IsLoaded indica se la proprietà ImageButton.Image è stata caricata dalla sito Web Roblox. Le immagini rifiutate dalla moderazione non saranno mai Caricare.

Campioni di codice

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

Un ID della texture che può essere impostato come ProprietàImageButton. Quando viene premuto il pulsante, renderà questo immagine.

ResampleMode

Lettura Parallela

Determina il modo in cui l'immagine appare quando viene ridimensionata.

Per impostazione predefinita, l'immagine leviga la texture quando visualizzata sia più grande o più piccola della sua dimensione nella memoria della texture. Invece, Enum.ResamplerMode.Pixelated preserva gli angoli affilati dei pixel dell'immagine.

Lettura Parallela

La proprietà ScaleType determina in che modo viene visualizzato un ImageButton.Image quando la dimensione assoluta dell'elemento UI differisce dalla dimensione della fonte.

Per impostazione predefinita, questa proprietà è Enum.ScaleType.Stretch , che si estende semplicemente per allargare le dimensioni dell'immagine in modo che si adatti esattamente allo spazio dell'elemento UI. Poiché i pixel trasparenti sono impostati su nero quando si carica sul sito Web Roblox, le immagini trasparenti dovrebbero applicare l'Alpha Blending per evitare un'outline in nero attorno alle immagini sc

Per Enum.ScaleType.Slice , la proprietà ImageButton.SliceCenter sarà rivelata nella finestra Proprietà. Questo è per l'interfaccia utente a 9 slot: quando si ingrandisce, gli angoli rimangono la dimensione dell'immagine di origine. Le parti dell'immagine si allargano fino alla larghezza/altezza dell'immagine. Infine,

Infine, per Enum.ScaleType.Tile, la proprietà ImageButton.TileSize verrà rivelata nella finestra Proprietà. Questa è per le immagini in grado, in cui la dimensione di ciascuna immagini viene determinata dalla proprietà ImageButton.TileSize.

Campioni di codice

Image ScaleType Demo

local imageLabel = script.Parent
-- Set the source image to be a 64x64 padlock
imageLabel.Image = "rbxassetid://284402752"
imageLabel.BackgroundTransparency = 0
imageLabel.BackgroundColor3 = Color3.new(1, 1, 1) -- White
imageLabel.ImageColor3 = Color3.new(0, 0, 0) -- Black
local function resizeInACircle()
for theta = 0, 2, 0.02 do
imageLabel.Size = UDim2.new(
0,
100 + math.cos(theta * 2 * math.pi) * 50,
0,
100 + math.sin(theta * 2 * math.pi) * 50
)
task.wait()
end
end
while true do
-- Stretch simply stretches the source image to fit
-- the UI element's space
imageLabel.ScaleType = Enum.ScaleType.Stretch
resizeInACircle()
-- Tile will render the source image multiple times
-- enough to fill the UI element's space
imageLabel.ScaleType = Enum.ScaleType.Tile
imageLabel.TileSize = UDim2.new(0, 64, 0, 64)
resizeInACircle()
-- Slice will turn the image into a nine-slice UI.
imageLabel.ScaleType = Enum.ScaleType.Slice
imageLabel.SliceCenter = Rect.new(30, 30, 34, 34)
resizeInACircle()
end

SliceCenter

Lettura Parallela

La proprietà SliceCenter imposta i limiti di pixelizzazione di un'immagine a 9-sliced quando ImageButton.ScaleType è impostato su Enum.ScaleType.Slice . Nota che questa proprietà è

Per saperne di più sui 9-sliced images, check out this Tutoriale: Design UI 9 Slice .

Campioni di codice

Image ScaleType Demo

local imageLabel = script.Parent
-- Set the source image to be a 64x64 padlock
imageLabel.Image = "rbxassetid://284402752"
imageLabel.BackgroundTransparency = 0
imageLabel.BackgroundColor3 = Color3.new(1, 1, 1) -- White
imageLabel.ImageColor3 = Color3.new(0, 0, 0) -- Black
local function resizeInACircle()
for theta = 0, 2, 0.02 do
imageLabel.Size = UDim2.new(
0,
100 + math.cos(theta * 2 * math.pi) * 50,
0,
100 + math.sin(theta * 2 * math.pi) * 50
)
task.wait()
end
end
while true do
-- Stretch simply stretches the source image to fit
-- the UI element's space
imageLabel.ScaleType = Enum.ScaleType.Stretch
resizeInACircle()
-- Tile will render the source image multiple times
-- enough to fill the UI element's space
imageLabel.ScaleType = Enum.ScaleType.Tile
imageLabel.TileSize = UDim2.new(0, 64, 0, 64)
resizeInACircle()
-- Slice will turn the image into a nine-slice UI.
imageLabel.ScaleType = Enum.ScaleType.Slice
imageLabel.SliceCenter = Rect.new(30, 30, 34, 34)
resizeInACircle()
end

SliceScale

Lettura Parallela

Scala le 9-Slice边 dal rapporto specificato. Ciò significa che le边 intorno alla 9-Slice cresceranno come se tu avessi caricato una nuova versione della texture upscaled. Le predefiniture sono 1.0.

Come moltiplicatore per i bordi di un 9-Slice, è utile per riutilizzare un'immagine di angolo arrotondato per più radii

Vedi anche:

TileSize

Lettura Parallela

TileSize imposta la dimensione di riempimento del ImageButton. Il valore predefinito UDim2 è 1,0,1,0. Il componente di scala della UDim2 scala la tile in base alle dimensioni dell'ImageButton. L'Offset è in pixel grezzi. Il tiling inizia dall'angolo in alto a sinistra dell'immagine. Ad esempio, uno scala di 0.5 significa

Questa proprietà è attiva solo se lo ScaleType per il ImageButton è impostato su Tile invece che su Stretch o Stretch.

Campioni di codice

Image ScaleType Demo

local imageLabel = script.Parent
-- Set the source image to be a 64x64 padlock
imageLabel.Image = "rbxassetid://284402752"
imageLabel.BackgroundTransparency = 0
imageLabel.BackgroundColor3 = Color3.new(1, 1, 1) -- White
imageLabel.ImageColor3 = Color3.new(0, 0, 0) -- Black
local function resizeInACircle()
for theta = 0, 2, 0.02 do
imageLabel.Size = UDim2.new(
0,
100 + math.cos(theta * 2 * math.pi) * 50,
0,
100 + math.sin(theta * 2 * math.pi) * 50
)
task.wait()
end
end
while true do
-- Stretch simply stretches the source image to fit
-- the UI element's space
imageLabel.ScaleType = Enum.ScaleType.Stretch
resizeInACircle()
-- Tile will render the source image multiple times
-- enough to fill the UI element's space
imageLabel.ScaleType = Enum.ScaleType.Tile
imageLabel.TileSize = UDim2.new(0, 64, 0, 64)
resizeInACircle()
-- Slice will turn the image into a nine-slice UI.
imageLabel.ScaleType = Enum.ScaleType.Slice
imageLabel.SliceCenter = Rect.new(30, 30, 34, 34)
resizeInACircle()
end

Metodi

Eventi