ImageButton

Afficher les obsolètes

*Ce contenu est traduit en utilisant l'IA (Beta) et peut contenir des erreurs. Pour consulter cette page en anglais, clique ici.

Un ImageButton se comporte comme un ImageLabel en matière de rendu avec les comportements supplémentaires d'un GuiButton. Il définit les mêmes propriétés de rendu d'image que celles d'un ImageLabel.

Vous pouvez désactiver la rendu d'image en définissant ImageButton.ImageTransparency à 1. Cela vous laissera avec un simple rectangle qui peut être utilisé comme un bouton. Cependant, il peut être préférable d'utiliser un TextButton vide pour cela.

Échantillons de code

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

Résumé

Propriétés

  • HoverImage:ContentId
    Lecture parallèle

    ID de texture qui sera utilisé lorsque le ImageButton est positionné.

  • Image:ContentId
    Lecture parallèle

    Le contenu de l'image affiché par l'élément UI.

  • Lecture parallèle

    Détermine la façon dont une image rendue sera colorée.

  • Caché
    Lecture parallèle
  • Lecture parallèle

    L'Offset en pixels de la sous-zone d'une image à afficher.

  • Lecture parallèle

    Détermine la taille en pixels de la sous-zone d'une image à afficher.

  • Lecture parallèle

    Détermine la transparence de l'image rendue.

  • Lecture uniquement
    Non répliqué
    Lecture parallèle

    Indique si l'image est chargée du site Web de Roblox.

  • PressedImage:ContentId
    Lecture parallèle

    Un texte id qui sera utilisé lorsqu'un ImageButton est pressé.

  • Sélectionne le mode de redimensionnement d'image pour le bouton.

  • Lecture parallèle

    Détermine la façon dont une image sera mise à l'échelle si elle est affichée dans un élément de l'interface utilisateur dont la taille diffère de l'image source.

  • Lecture parallèle

    Définit les limites de tranche d'une image en 9 tranches.

  • Lecture parallèle

    Échelle les 9 bords d'边 par le ratio spécifié.

  • Lecture parallèle

    Définit l'échelle de mise en page de ImageButton.

Propriétés hérités de GuiButton
  • Lecture parallèle

    Détermine si le bouton change automatiquement de couleur lorsque la souris s'arrête dessus ou clique dessus.

  • Lecture parallèle

    Si oui, l'élément GUI est visible, la souris ne sera pas verrouillée à moins que le bouton de souris droit ne soit vers le bas.

  • Lecture parallèle

    Une propriété booléenne qui indique si l'objet a été sélectionné.

  • Lecture parallèle

    Définit le style du GuiButton en fonction d'une liste de styles prédéfinis.

Propriétés hérités de GuiObjectPropriétés hérités de GuiBase2d

Méthodes

Méthodes hérités de GuiObject

Évènements

Évènements hérités de GuiButtonÉvènements hérités de GuiObjectÉvènements hérités de GuiBase2d

Propriétés

HoverImage

ContentId
Lecture parallèle

ID de texture qui sera utilisé lorsque le ImageButton est positionné.

Image

ContentId
Lecture parallèle

La propriété Image est une propriété de type de contenu qui doit contenir l'ID de l'asset d'une décalque ou d'une image sur le site Web de Roblox. Elle fonctionne identiquement à Decal.Texture en matière de chargement de l'image sur le site Web de Roblox. La décalque rendue image sera colorée

Échantillons de code

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

Lecture parallèle

La couleur d'image3 détermine comment une image est colorée. Lorsqu'il est défini sur blanc, aucune coloration n'a lieu. Cette propriété est très utile pour réutiliser les ressources d'image : si l'image source est complètement blanche avec une transparence, vous pouvez définir la couleur entière de l'image à l'aide de cette propriété.

Échantillons de code

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

Caché
Lecture parallèle

ImageRectOffset

Lecture parallèle

Permet la présentation partielle d'une image en conjonction avec ImageButton.ImageRectSize . Cette propriété détermine le décalage des pixels (du haut à gauche) de la zone d'image à afficher.

Cette propriété se comporte identiquement à ImageLabel.ImageRectSize .

Échantillons de code

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

Lecture parallèle

Permet la présentation partielle d'une image en conjonction avec ImageButton.ImageRectOffset . Cette propriété détermine la taille des pixels de la zone d'image à afficher. Si l'une des dimensions est réglée sur 0, l'ensemble de l'image est affichée à la place.

Cette propriété se comporte identiquement à ImageLabel.ImageRectOffset .

Échantillons de code

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

Lecture parallèle

ImageTransparency détermine la transparence d'une image d'un élément UI rendue. Une valeur de 0 est complètement opaque, et une valeur de 1 est complètement transparente (invisible). Cette propriété se comporte également comme GuiObject.BackgroundTransparency ou BasePart.Transparency.

Échantillons de code

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

Lecture uniquement
Non répliqué
Lecture parallèle

La propriété IsLoaded indique si la propriété ImageButton.Image a fini de charger du site Web Roblox. Les images rejetées par la modération ne seront jamais chargées.

Échantillons de code

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
Lecture parallèle

Un ID de texture qui peut être défini comme une propriété ImageButton. Lorsque le bouton est pressé, il rendra cette image.

ResampleMode

Lecture parallèle

Détermine la façon dont l'image apparaît lorsqu'elle est redimensionnée.

Par défaut, l'image aplatit la texture lorsqu'elle est affichée soit plus grande que son taille dans la mémoire de texte. Au lieu de cela, Enum.ResamplerMode.Pixelated préserve les bords tranchants des pixels de l'image.

Lecture parallèle

La propriété ScaleType détermine la manière dont un ImageButton.Image est rendu lorsque la taille absolue de l'élément de l'interface utilisateur diffère de la taille de l'image source.

Par défaut, cette propriété est Enum.ScaleType.Stretch, ce qui étirera simplement les dimensions de l'image pour qu'elle s'adapte exactement à l'espace de l'élément de l'interface. Étant donné que les pixels transparents sont définis pour être noirs lors du téléchargement sur le site Web Roblox, les images transparentes devraient s'appliquer à l'ombrage alpha pour éviter un contour noir autour des images échelonnées.

Pour Enum.ScaleType.Slice, la propriété ImageButton.SliceCenter sera révélée dans la fenêtre propriétés. Ceci est pour l'interface de 9 colonnes: lorsque vous étirez la bords, les coins restent la taille de l'image source. Les bords de l'image s'étendent sur la largeur/hauteur de l'image. Finalement, le centre de l'image

Enfin, pour Enum.ScaleType.Tile, la propriété ImageButton.TileSize sera révélée dans la fenêtre propriétés. Ceci est pour les images à tuiles, où la taille de chaque tuile d'image est déterminée par la propriété ImageButton.TileSize.

Échantillons de code

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

Lecture parallèle

La propriété SliceCenter définit les limites de chaque tranche d'une image coupée en 9 lorsque ImageButton.ScaleType est réglé sur Enum.ScaleType.Slice. Veuillez noter que cette propriété n

Pour en savoir plus sur les images tranchées 9, consultez ce tutoriel : Conception de l'interface utilisateur 9 Slice Design .

Échantillons de code

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

Lecture parallèle

Échelle les 9 bords par le ratio spécifié. Cela signifie que les bords autour des 9 bords grandiront comme si vous aviez téléchargé une nouvelle version de la texture upscaled. Par défaut, 1.0.

En tant que multiplicateur pour les bords d'un 9-Slice, il est utile de réutiliser une image de coin arrondi pour plusieurs radii

Voir aussi :

TileSize

Lecture parallèle

TileSize définit la taille de tiling du bouton d'image. Les valeurs par défaut UDim2 sont 1,0,1,0. Le composant de mise à l'échelle du UDim2 met la tiling basée sur la taille du bouton d'image. L'Offset est en pixels. La tiling commence dans le coin supérieur gauche de l'image. Par exemple, une échelle de 0,5 signif

Cette propriété n'est active que si le ScaleType pour le ImageButton est défini sur Tile au lieu de Slice ou Stretch.

Échantillons de code

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

Évènements