mirror of
https://github.com/centau/vide.git
synced 2026-08-20 14:41:37 +00:00
Enhance draggable function documentation
Added detailed documentation for the draggable function, including options, supported instances, and an example of usage.
This commit is contained in:
parent
bab3cfd920
commit
6a55fc455a
1 changed files with 56 additions and 0 deletions
|
|
@ -62,3 +62,59 @@ Creates an Action that makes a GuiObject draggable using input events (mouse and
|
|||
|
||||
```lua
|
||||
draggable(opts: DraggableOptions?) -> Action
|
||||
|
||||
DraggableOptions
|
||||
• axis: "x" | "y" | "both" (default "both")
|
||||
Constrains dragging to a single axis or allows free movement.
|
||||
• onDragStart: (startPos: UDim2) -> () (optional)
|
||||
Called when dragging begins. Receives the starting Position.
|
||||
• onDrag: (newPos: UDim2) -> () (optional)
|
||||
Called while dragging. Receives the updated Position.
|
||||
• onDragEnd: (endPos: UDim2) -> () (optional)
|
||||
Called when dragging ends. Receives the final Position.
|
||||
|
||||
Supported instances
|
||||
|
||||
draggable() must be applied to an instance that:
|
||||
• is a GuiObject (e.g., Frame, TextButton, ImageLabel, ImageButton),
|
||||
• has a writable Position property,
|
||||
• exposes input events such as InputBegan and InputChanged.
|
||||
|
||||
If applied to a non-GuiObject, the Action should be treated as a no-op
|
||||
|
||||
Example: Basic draggable panel
|
||||
local Players = game:GetService("Players")
|
||||
local ReplicatedStorage = game:GetService("ReplicatedStorage")
|
||||
|
||||
local vide = require(ReplicatedStorage:WaitForChild("vide"))
|
||||
local create = vide.create
|
||||
local mount = vide.mount
|
||||
|
||||
local playerGui = Players.LocalPlayer:WaitForChild("PlayerGui")
|
||||
|
||||
local function App()
|
||||
return create "ScreenGui" {
|
||||
Name = "DraggableExample",
|
||||
ResetOnSpawn = false,
|
||||
Parent = playerGui,
|
||||
|
||||
create "Frame" {
|
||||
Position = UDim2.fromOffset(200, 150),
|
||||
Size = UDim2.fromOffset(420, 240),
|
||||
BackgroundTransparency = 0.1,
|
||||
|
||||
create "UICorner" { CornerRadius = UDim.new(0, 16) },
|
||||
|
||||
vide.draggable(), -- defaults to axis = "both"
|
||||
|
||||
create "TextLabel" {
|
||||
BackgroundTransparency = 1,
|
||||
Size = UDim2.fromOffset(420, 50),
|
||||
Text = "Drag this panel",
|
||||
TextSize = 20,
|
||||
},
|
||||
}
|
||||
}
|
||||
end
|
||||
|
||||
mount(App, playerGui)
|
||||
|
|
|
|||
Loading…
Add table
Add a link
Reference in a new issue