ImageButton
*このコンテンツは、ベータ版のAI(人工知能)を使用して翻訳されており、エラーが含まれている可能性があります。このページを英語で表示するには、 こちら をクリックしてください。
ImageButton は、ImageLabel と同様に、GuiButton の追加の動作に関連してレンダリングを行う場合にも同様の画像レンダリングプロパティを定義します。ImageLabel は、2>Class.GuiButton2> の動作と同じレンダリングプロパティを定義します。
Class.ImageButton.ImageTransparency を 1 に設定すると、画像のレンダリングを無効にできます。これにより、ボタンとして使用できるプレーンな正方形が残ります。しかし、これには空の TextButton を使用することがより良いです。
コードサンプル
-- 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()
概要
プロパティ
Class.ImageButton がホバーされるときに使用されるテクスチャ ID。
UI 要素に表示される画像コンテンツ。
レンダリングされた画像の色を決める。
画像のサブエリアのピクセルオフセット。
画像のサブエリアのピクセルサイズを決定します。
レンダリングされた画像の透明度を決める。
Roblox ウェブサイトからのイメージの読み込みが完了したかどうかを示します。
Class.ImageButton が押されるときに使用されるテクスチャ ID。
ボタンのイメージ再構築モードを選択します。
サイズがソース画像と異なる UI 要素の中の画像を拡大する方法を決定します。
9 スライスの画像のスライスボードを設定します。
指定された比率で 9 スライスの端をスケールします。
イメージボタンのタイルスケールを設定します。
マウスがその上に停止するか、クリックするとボタンの色が自動的に変更されるかどうかを決定します。
GUI 要素が表示されている場合、マウスは右マウスボタンが下にあるまでロックされません。
オブジェクトが選択されているかどうかを示すBooleanプロパティ。
プリデターミンスタイルのリストに基づいてGUIボタンのスタイルを設定します。
この UI 要素が入力を沈めるかどうかを決定します。
Class.GuiObject のオリジンポイントを決定し、相対的なサイズに対して Class.GuiObject のオリジンポイントを決定します。
子コンテンツに基づいてサイズ変更が発生するかどうかを決定します。
Class.GuiObject の背景色を決定します。
Class.GuiObject の背景と境界を透明化する。
Class.GuiObject ボーダーの色を決定します。
Class.GuiObject ボーダーの位置相対を決定します。
Class.GuiObject ボーダーのピクセル幅を決定します。
親 GUI 要素の外にある子 GUI 要素がレンダリングするべきかどうかを決定します。
プレイヤーのマウスが GuiObject 上で積極的に押されているかどうかを決定します。
Class.GuiButton がインタラクト可能かどうかを決定します。GuiState の GuiObject が変更されているかどうか。
Class.UIGridStyleLayout と一緒に使用されると、UIGridStyleLayout のソートオーダーを制御します。
ゲームパッドのセレクターが下に移動すると、GuiObject が選択されます。
ゲームパッドのセレクターが左に移動したときに選択される GuiObject を設定します。
ゲームパッドのセレクターが右に移動したときに選択される GuiObject を設定します。
ゲームパッドセレクターが上に移動すると、GuiObject が選択されます。
Class.GuiObject のピクセルとスカラーポジションを決定します。
Class.GuiObject が回転する度数を決定します。
ゲームパッドで GUI を選択できるかどうかを決定します。
ゲームパッドのデフォルトの装飾をオーバーライドします。
ゲームパッド UI の選択によって選択された GuiObjects のオーダー。
Class.GuiObject のピクセルとスケーラーサイズを決定します。
Class.GuiObject.BackgroundTransparency|BackgroundTransparency と TextTransparency のミックスプロパティ。
Class.GuiObject とその子孫がレンダリングされるかどうかを決定します。
他の Class.GuiObject との相対位置で GuiObject がレンダリングされる順序を決定します。
UI 要素の実際の画面位置をピクセルで説明します。
UI 要素の実際のスクリーン回転を、度数で説明します。
UI 要素の実際の画面サイズをピクセル単位で説明します。
設定を「真」に設定すると、ローカライズはこの GuiBase2d とその子孫に適用されます。
この GuiBase2d とその後の子孫に自動的にローカライズを適用するために使用される LocalizationTable の参照。
下向きにゲームパッドの選択動作をカスタマイズします。
左側のゲームパッド選択動作をカスタマイズします。
右方向のゲームパッド選択動作をカスタマイズします。
ゲームパッドの選択動作を上向きにカスタマイズします。
ゲームパッドの選択動作をカスタマイズできます。
方法
GuiObject から継承した 方法- TweenPosition(endPosition : UDim2,easingDirection : Enum.EasingDirection,easingStyle : Enum.EasingStyle,time : number,override : bool,callback : function):bool
GUIを新しい UDim2 にスムーズに移動します。
- TweenSize(endSize : UDim2,easingDirection : Enum.EasingDirection,easingStyle : Enum.EasingStyle,time : number,override : bool,callback : function):bool
GUI を新しい UDim2 にスムーズにサイズ変更します。
- TweenSizeAndPosition(endSize : UDim2,endPosition : UDim2,easingDirection : Enum.EasingDirection,easingStyle : Enum.EasingStyle,time : number,override : bool,callback : function):bool
GUI を新しいサイズと位置にスムーズに移動させます。
イベント
GuiButton から継承した イベントボタンが有効になると発動します。
マウスが完全にクリックしたときに発射されます。
GUI オブジェクトの左マウスダウン状態にマウスがあるときに発動します。
左側のマウスがGUIオブジェクトをリリースしたときに発動します。
マウスが完全に右クリックしたときに発動します。
GUI オブジェクトの右マウスボタン下の状態にマウスがあるときに発動します。
GUI オブジェクトの右マウスボタンがリリースされたときに発動します。
ユーザーが人間コンピューターインターフェイスデバイス (マウスボタン、タッチボタン、キーボードボタンなど) を介してインタラクトし始めると、発動します。
ユーザーが人間コンピューターインターフェースデバイス (マウスボタン、タッチボタン、キーボードボタンなど) でどのようにインタラクトするかを変更すると、発動します。
ユーザーが人間コンピューターインターフェイスデバイス(マウスボタン、タッチボタン、キーボードボタンなど)を通じての交流を停止すると、発射されます。
ユーザーがマウスをGUIエレメントに移動すると、ファイアが発生します。
ユーザーが GUI 要素からマウスを移動したときに発動します。
ユーザーが GUI 要素の中にマウスを移動すると、発動します。
マウスが GUI 要素の上にあるときに、ユーザーがマウスホイールを戻したときに発動します。
マウスが GUI 要素の上にあるときに、ユーザーがマウスホイールを前にスクロールすると、ファイアが発生します。
Gamepad セレクターで GuiObject が焦点に置かれると、発射されます。
ゲームパッドのセレクターが GuiObject に焦点を合わせるのをやめると、発射されます。
プレイヤーが開始し、UI 要素を長押ししているときに発動します。
- TouchPan(touchPositions : Array,totalTranslation : Vector2,velocity : Vector2,state : Enum.UserInputState):RBXScriptSignal
プレイヤーが UI 要素に指を置くと、ファイアがオンになります。
- TouchPinch(touchPositions : Array,scale : number,velocity : number,state : Enum.UserInputState):RBXScriptSignal
ユーザーが UI エレメントの 2つの指を使用してピンチや引っ掛けを行うときに発動します。
- TouchRotate(touchPositions : Array,rotation : number,velocity : number,state : Enum.UserInputState):RBXScriptSignal
ユーザーが UI 要素に 2 つの指を使用して回転を実行すると、ファイアが発動します。
プレイヤーが UI 要素にスワイプを行うときに発動します。
プレイヤーが UI 要素にタップスタイルを実行すると、ファイアが発動します。
- SelectionChanged(amISelected : bool,previousSelection : GuiObject,newSelection : GuiObject):RBXScriptSignal
ゲームパッドの選択が移動すると、退出します。または、接続された GuiBase2d または任意の子 GuiObjects 内で変更されます。
プロパティ
HoverImage
Class.ImageButton がホバーされるときに使用されるテクスチャ ID。
Image
画像プロパティは、Roblox ウェブサイトのデカールまたは画像のアセット IDを保持するコンテンツタイププロパティです。それは、Decal.Texture に関連して、画像を Roblox ウェブサイトから
コードサンプル
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つ設定することで、画像の色を設定できます。白に設定すると、色化は発生しません。このプロパティは、イメージアセットを再使用するのに非常に便利です: ソース画像が完全に透明であると、このプロパティを使用して画像の色を完全に設定できます。
コードサンプル
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()
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
Class.ImageButton.ImageRectSize と一緒に画像の一部を表示することができます。このプロパティは、画像エリアを表示するピクセルオフセット (上部左側) を決定します。
このプロパティは ImageLabel.ImageRectSize と同じように動作します。
コードサンプル
-- 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
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 と同じように動作します。
コードサンプル
-- 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
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 と同様に動作します。
コードサンプル
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 プロパティは、Class.ImageButton.Image プロパティが Roblox ウェブサイトから読み込まれたかどうかを示します。モデレーションによって拒否された画像は、Class.ImageButton.Image プロパティで読み込むみ込まれません。
コードサンプル
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))
ResampleMode
スケール時の画像の外観を決める。
デフォルトでは、サイズがテクスチャメモリのサイズより大きい場合、またはサイズがテクスチャメモリのサイズより小さい場合、画像のテクスチャをスムーズにします。一方、 Enum.ResamplerMode.Pixelated は、画像のピクセルの鋭いエッジを保持します。
ScaleType
Class.ImageButton.Image のサイズは、ソース画像のサイズと UI 要素のサイズの差により、Class.ImageButton.Image がどのようにレンダリングされるかを決定します。
デフォルトでこのプロパティは Enum.ScaleType.Stretch で、イメージのサイズを拡大/縮小するだけでイメージが UI エレメントのスペースに正確にフィットします。透明なピクセルは、Roblox ウェブサイトにアップロードすると、透明なイメージが透明なアウトライン
For Enum.ScaleType.Slice の場合、ImageButton.SliceCenter プロパティは [プロパティ] ウィンドウに表示されます。これは 9 スライス UI の場合で、スケールアップすると、隅は元の画像サイズを維持します。画像の�
最後に、Enum.ScaleType.Tile の場合、ImageButton.TileSize プロパティはプロパティウィンドウに表示されます。これは、タイルイメージの場合、各タイルのサイズは ImageButton.TileSize プロパティによって決定されます。
コードサンプル
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
[スライスセンター] プロパティは、ImageButton.ScaleType がEnum.ScaleType.Sliceに設定されているときにスライスボーダーを設定します。このプロパテ
9つのスライスされた画像について詳しくは、このチュートリアルをチェックしてください: UI 9 Slice Design。
コードサンプル
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つのスライスのボーダーの多重使用に便利なマルチプライヤーです
参照してください:
- ImageButton.ScaleType は、サイズがソース画像と異なる UI 要素に表示される場合、画像がどのようにスケールされるかを決定します
- ImageLabel.ScaleCenter は、9つのスライスの画像の中心を決定します
- ImageButton.SliceScale、同じ機能性のプロパティですが、ImageButtons
TileSize
タイルサイズ は、画像ボタンのタイルサイズを設定します。デフォルトの UDim2 値は 1,0,1,0です。UDim2のスケールコンポーネントは、UDim2のサイズに基づいてタイルをスケールします。オフセットは、Raw ピクセ
このプロパティは、[画像ボタン] のスケールタイプが [タイル] で設定されている場合にのみ有効です。
コードサンプル
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