ImageButton

사용되지 않는 항목 표시

*이 콘텐츠는 AI(베타)를 사용해 번역되었으며, 오류가 있을 수 있습니다. 이 페이지를 영어로 보려면 여기를 클릭하세요.

이미지 버튼은 추가 동작을 사용하는 ImageLabel 와 마찬가지로 렌더링에 대해 동작합니다. 그것은 GuiButton 의 추가 동작과 관련하여 동일한 이미지 렌더링 속성을 정의합니다.

이미지 렌더링을 비활성화하려면 ImageButton.ImageTransparency 를 1로 설정하십시오. 이렇게 하면 버튼으로 사용할 수 있는 평범한 직사각형이 남습니다. 그러나 이 경우 TextButton 를 사용하는 것이 좋습니다.

코드 샘플

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

요약

속성

  • HoverImage:ContentId
    병렬 읽기

    Class.ImageButton 가 마우스로 호버할 때 사용할 텍스처 ID입니다.

  • Image:ContentId
    병렬 읽기

    UI 요소에 표시되는 이미지 콘텐츠.

  • 병렬 읽기

    렌더링된 이미지에 색상을 지정하는 방법을 결정합니다.

  • 숨김
    병렬 읽기
  • 표시할 이미지의 하위 영역의 픽셀 오프셋.

  • 병렬 읽기

    표시할 이미지 하위 영역의 픽셀 크기를 결정합니다.

  • 렌더링 이미지의 투명도를 결정합니다.

  • 읽기 전용
    복제되지 않음
    병렬 읽기

    Roblox 웹사이트에서 이미지를 로드하는 것이 완료되었는지 여부를 나타냅니다.

  • PressedImage:ContentId
    병렬 읽기

    Class.ImageButton 을 누르는 경우 사용할 텍스처 ID입니다.

  • 버튼에 대한 이미지 재설정 모드를 선택합니다.

  • 원본 이미지와 크기가 다른 UI 요소에 표시되는 이미지의 크기를 결정합니다.

  • 병렬 읽기

    9개 조각된 이미지의 슬라이스 경계를 설정합니다.

  • 병렬 읽기

    9개의 슬라이스 가장자리를 지정된 비율로 조정합니다.

  • 병렬 읽기

    이미지 버튼의 타일 크기를 설정합니다.

속성GuiButton에서 상속되었습니다
  • 병렬 읽기

    마우스가 버튼을 자동으로 변경할 때 버튼의 색이 변경되는지 여부를 결정합니다.

  • 병렬 읽기

    GUI 요소가 표시되는 동안 마우스가 잠긴 상태가 아니라면, 마우스가 아래로 스크롤되지 않고 있는 경우에만 마우스가 잠긴 상태로 유지됩니다.If true while the GUI element is visible, the mouse will not be locked unless the right mouse button is down.

  • 병렬 읽기

    개체가 선택되었는지 여부를 나타내는 부울 속성입니다.

  • 병렬 읽기

    미리 정의된 스타일 목록에 따라 GuiButton의 스타일을 설정합니다.

속성GuiObject에서 상속되었습니다속성GuiBase2d에서 상속되었습니다

메서드

메서드GuiObject에서 상속되었습니다

이벤트

이벤트GuiButton에서 상속되었습니다이벤트GuiObject에서 상속되었습니다이벤트GuiBase2d에서 상속되었습니다

속성

HoverImage

ContentId
병렬 읽기

Class.ImageButton 가 마우스로 호버할 때 사용할 텍스처 ID입니다.

Image

ContentId
병렬 읽기

이미지 속성은 Roblox 웹사이트에 있는 데칼 또는 이미지의 자산 ID를 보관하는 콘텐츠 유형 속성입니다. 이미지를 Roblox 웹사이트에서 로드하는 경우 Class.Decal

코드 샘플

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

병렬 읽기

이미지 색상 3은 이미지를 색상화하는 방법을 결정합니다. 하얀색으로 설정하면 색상화가 발생하지 않습니다. 이 속성은 이미지 자산을 재사용하는 데 매우 유용합니다: 원본 이미지가 완전히 투명하면 이 속성으로 전체 이미지의 색상을 지정할 수 있습니다.

코드 샘플

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

숨김
병렬 읽기

ImageRectOffset

병렬 읽기

이 속성은 ImageButton.ImageRectSize 와 함께 이미지의 일부를 표시하는 경우에 이미지 영역의 픽셀 오프셋을 결정합니다.

이 속성은 ImageLabel.ImageRectSize 와 동일하게 동작합니다.

코드 샘플

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

병렬 읽기

이 속성은 이미지 영역의 일부 표시를 위해 ImageButton.ImageRectOffset 와 함께 사용됩니다. 이 속성은 표시할 이미지 영역의 픽셀 크기를 결정합니다. 두 차원이 모두 0인 경우 전체 이미지가 표시됩니다.

이 속성은 ImageLabel.ImageRectOffset와 동일하게 동작합니다.

코드 샘플

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

병렬 읽기

이미지 투명도는 UI 요소의 렌더링된 이미지의 알파를 결정합니다. 값 0은 완전히 불투명하며 값 1은 완전히 투명합니다(보이지 않음). 이 속성은 GuiObject.BackgroundTransparency 또는 BasePart.Transparency와 동일합니다.

코드 샘플

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

읽기 전용
복제되지 않음
병렬 읽기

Class.ImageButton.Image 속성은 Roblox 웹사이트에서 로드된 이미지가 완료되었는지 여부를 나타냅니다. 조정을 위해 거부된 이미지는 불러오다않습니다.

코드 샘플

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
병렬 읽기

버튼을 누르면 ImageButton 속성으로 설정할 수 있는 텍스처 ID입니다. 이 이미지는 렌더링됩니다.

ResampleMode

병렬 읽기

이미지가 크기를 조정할 때 모양을 결정합니다.

기본적으로 이미지는 텍스처 메모리의 크기보다 큰 크기로 표시되면 텍스처가 부드럽게 처리됩니다. 반면, Enum.ResamplerMode.Pixelated 는 이미지 픽셀의 날카로운 모서리를 보존합니다.

병렬 읽기

Class.ImageButton.Image 는 사용자 요소의 크기가 원본 이미지의 크기와 상이할 때 어떻게 표시되는지 결정합니다.

기본적으로 이 속성은 Enum.ScaleType.Stretch 이며, 이미지 크기를 확장하거나 축소하여 사용자 요소의 공간에 정확히 맞춥니다. 투명 픽셀이 로블록스 웹 사이트에 업로드될 때 투명한 이미지를 적용하여 흑

For Enum.ScaleType.Slice , the ImageButton.SliceCenter property will be revealed in the Properties window. This is for 9-slice UI: when scaling up, the corners will remain the source image size. The边의 이미지 너비/높이를 조정하려면 이미지 측면에서 센터 영역을 채우십시오. 마

마지막으로, Enum.ScaleType.Tile 에 대해 ImageButton.TileSize 속성은 속성 창에 나타납니다. 이는 타일된 이미지에 대해 각 타일의 크기를 결정하는 ImageButton.TileSize 속성입니다.

코드 샘플

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

병렬 읽기

Class.ImageButton.ScaleType 가 Enum.ScaleType.Slice 로 설정되면 9-Slice 이미지의 슬라이스 경계를 설정합니다. 이 속성은 Studio 속성 창에서

9-sliced 이미지에 대해 자세히 알아보려면 이 튜토리얼을 확인하십시오: UI 9 Slice Design.

코드 샘플

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

병렬 읽기

9개의 슬라이스 가장자리를 지정된 비율로 조정합니다. 즉, 9개의 슬라이스 주위에 있는 가장자리가 새로운 버전의 텍스처를 업스케일한 것과 같이 성장합니다. 기본값은 1.0입니다.

9개의 슬라이스 경계의 배경으로 사용되는 배수로 원형 이미지를 다시 사용하는 것이 좋습니다.As a multiplier for the borders of a 9-slice, it is useful for reusing one rounded corner image for multiple radii

또한 참조하십시오.

TileSize

병렬 읽기

TileSize 이미지 버튼의 타일 크기를 설정합니다. 기본 UDim2 값은 1,0,1,0입니다. UDim2의 확대 구성 요소는 타일을 이미지 버튼의 크기에 따라 확대합니다. 오프셋은 원시 픽셀에서

이 속성은 이미지 버튼에 대한 크기 조정 유형이 타일이 아닌 경우에만 적용됩니다.

코드 샘플

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

메서드

이벤트