ImageButton

Mostrar obsoleto

*Este conteúdo é traduzido por IA (Beta) e pode conter erros. Para ver a página em inglês, clique aqui.

Un ImageButton se comporta similarmente a un ImageLabel en lo que se refiere a la renderización con los comportamientos adicionales de un GuiButton . Defina las mismas propiedades de renderizado que lo hace un ImageLabel .

Puede desactivar la renderización de imágenes estableciendo ImageButton.ImageTransparency a 1. Esto le dejará con un rectángulo simple que se puede usar como un botón. Sin embargo, puede ser mejor usar un TextButton vacío para esto.

Amostras de código

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

Resumo

Propriedades

  • HoverImage:ContentId
    Ler Parallel

    Una ID de textura que se usará cuando el ImageButton esté siendo pasado el cursor.

  • Image:ContentId
    Ler Parallel

    El contenido de la imagen que se muestra por el elemento de la interfaz de usuario.

  • Ler Parallel

    Determina cómo se coloreará una imagen renderizada.

  • Oculto
    Ler Parallel
  • El desplazamiento en píxeles de la subárea de una imagen para mostrarla.

  • Determina el tamaño en píxeles de la subárea de una imagen para mostrarla.

  • Determina la transparencia de la imagen renderizada.

  • Somente leitura
    Não replicado
    Ler Parallel

    Indica si la Imagen ha finalizado de cargar desde el sitio web de Roblox.

  • PressedImage:ContentId
    Ler Parallel

    Un ID de textura que se usará cuando se presione un ImageButton .

  • Selecciona el modo de reescritura de la imagen para el botón.

  • Determina cómo se escalará una imagen si se muestra en un elemento de UI cuyo tamaño difiere de la imagen de origen.

  • Ler Parallel

    Establece los límites de la capa de un imagen de 9 capas.

  • Ler Parallel

    Escala las 9 esquinas por el radio especificado.

  • Ler Parallel

    Establece el tamaño de escalado de la imagen.

Propriedades herdados de GuiButton
  • Ler Parallel

    Determina se o botão muda de cor automaticamente quando o mouse passa por cima ou clica nele.

  • Ler Parallel

    Se verdadeiro, enquanto o elemento GUI estiver visível, o mouse não será bloqueado a menos que o botão direito do mouse esteja abaixo.

  • Ler Parallel

    Uma propriedade boolean que indica se o objeto foi selecionado.

  • Define o estilo do GuiButton com base em uma lista de estilos pré-definidos.

Propriedades herdados de GuiObjectPropriedades herdados de GuiBase2d

Métodos

Métodos herdados de GuiObject

Eventos

Eventos herdados de GuiButtonEventos herdados de GuiObjectEventos herdados de GuiBase2d

Propriedades

HoverImage

ContentId
Ler Parallel

Una ID de textura que se usará cuando el ImageButton esté siendo pasado el cursor.

Image

ContentId
Ler Parallel

La propiedad de imagen es una propiedad de tipo de contenido que debe contener el ID de la imagen de un Decal o Image en el sitio web de Roblox. Funciona idénticamente a Decal.Texture con respecto a la carga de la imagen desde el sitio web de Roblox. La imagen renderizada se colorear

Amostras de código

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

Ler Parallel

La propiedad Color3 de la imagen determina cómo se colorea una imagen. Cuando se establece en blanco, no ocurre ningún colorado. Esta propiedad es muy útil para reutilizar los recursos de la imagen: si la imagen de origen es completamente blanca con transparencia, puede establecer el color de la imagen entero con esta propiedad.

Amostras de código

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

Oculto
Ler Parallel

ImageRectOffset

Ler Parallel

Permite la presentación parcial de una imagen en conjunción con ImageButton.ImageRectSize . Esta propiedad determina el desplazamiento de píxeles (desde la parte superior izquierda) de la área de la imagen para mostrarse.

Esta propiedad se comporta idénticamente a ImageLabel.ImageRectSize .

Amostras de código

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

Ler Parallel

Permite la presentación parcial de una imagen en conjunción con ImageButton.ImageRectOffset . Esta propiedad determina el tamaño de los píxeles de la área de la imagen para mostrarse. Si se establece cualquiera de las dimensiones, se muestra el área de la imagen completa en su lugar.

Esta propiedad se comporta idénticamente a ImageLabel.ImageRectOffset .

Amostras de código

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

Ler Parallel

Transparencia de imagen determina la alfa de la imagen de renderizado de un elemento de UI. Un valor de 0 es completamente opaco, y un valor de 1 es completamente transparente (invisible). Esta propiedad se comporta similarmente a GuiObject.BackgroundTransparency o BasePart.Transparency .

Amostras de código

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

Somente leitura
Não replicado
Ler Parallel

La propiedad IsLoaded indica si la propiedad ImageButton.Image se ha cargado del sitio web de Roblox. Las imágenes rechazadas por la moderación nunca se cargarán.

Amostras de código

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

Un ID de textura que se puede establecer como propiedad de ImageButton. Cuando se presiona el botón, se renderizará esta imagen.

ResampleMode

Ler Parallel

Determina cómo se ve la imagen cuando se escala.

Por defecto, la imagen suaviza la textura cuando se muestra más grande o más pequeña que su tamaño en el almacenamiento de textura. En contraste, Enum.ResamplerMode.Pixelated preserva los bordes afilados de los píxeles de la imagen.

Ler Parallel

La propiedad ScaleType determina de qué manera se renderiza un ImageButton.Image cuando el tamaño de elemento de la interfaz de usuario difiere del tamaño de la imagen de origen.

Por defecto, esta propiedad es Enum.ScaleType.Stretch , lo que simplemente estirará / compactará las dimensiones de la imagen para que encaje exactamente con el espacio del elemento de la interfaz de usuario. Dado que los píxeles transparentes están configurados para negro al cargar en el sitio web de Roblox, las imágenes transparentes deberían aplicar el efecto de mezcla de alfa para evitar un contorno de color negro

Para Enum.ScaleType.Slice , la propiedad ImageButton.SliceCenter se revelará en la ventana Propiedades. Esto es para la interfaz de usuario de 9 pares: cuando se escala, las esquinas se mantendrán el tamaño de la imagen de origen. Las esquinas de la imagen se extenderán hasta la altura / ancho de la imagen. Final

Finalmente, para Enum.ScaleType.Tile, la propiedad ImageButton.TileSize se revelará en la ventana Propiedades. Esto es para las imágenes de azulejos, donde el tamaño de cada azulejo de imagen se determina por la propiedad ImageButton.TileSize.

Amostras de código

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

Ler Parallel

La propiedad SliceCenter establece los límites de los márgenes de un 9-sliced image cuando ImageButton.ScaleType está configurado para Enum.ScaleType.Slice . Por favor, teng

Para aprender más sobre las imágenes de 9 espírritos, consulta este tutorial: Diseño de UI 9 Slice.

Amostras de código

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

Ler Parallel

Aumenta los lados de 9 píldoras por el modo de escalado especificado. Esto significa que los lados alrededor de las 9 píldoras crecerán como si hubieras subido una nueva versión de la textura escalada. Por defecto, 1.0.

Como multiplicador de las esquinas de un 9-Slice, es útil para reutilizar una imagen de esquina redondeada para varios radios

Véase también:

TileSize

Ler Parallel

TileSize establece el tamaño de azulejo de la ImagenBotón. El valor predeterminado UDim2 es 1,0,1,0. El componente de escala de UDim2 escalará el azulejo en función del tamaño del ImageButton. El desplazamiento está en píxeles. El azulejo comienza en la esquina superior izquierda de la imagen. Por ejemplo, un

Esta propiedad solo está activa si el ScaleType para el ImageButton se ha establecido como Tile en lugar de Slice o Stretch.

Amostras de código

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

Métodos

Eventos