Hello all, the situation is fairly easy yet it doesn’t seem to work.
I loop thru a dictionary and each time I clone a frame and add this cloned frame to UIGridLayout which is inside a scrolling frame (see this
Changing frame position in UIGridLayout)
for _, item in ipairs(items) do
itemFrame = itemTemplate:Clone()
itemFrame.Parent = script.Parent.InventoryFrame[path]
itemFrame.ItemName.Text = item.name
itemFrame.ItemRarity.Text = item.rarity
itemFrame.ItemRarityColor.BackgroundColor3 = item.rarityColor
itemFrame.InputBegan:Connect(function(input)
if input.UserInputType == Enum.UserInputType.MouseButton1 then
draggable = true
while wait() do
if draggable then
itemFrame.Parent = script.Parent.InventoryFrame
itemFrame.Position = UDim2.new(0, mouse.X, 0, mouse.Y)
else
break
end
end
end
end)
itemFrame.InputEnded:Connect(function(input)
if input.UserInputType == Enum.UserInputType.MouseButton1 then
draggable = false
end
end)
end
But for some reason, it seems like the InputBegan works only for the last element of the loop. Is this a good approach? Can InputBegan be used multiple times? If not what should I use to check if each cloned frame is clicked and change its position to mouse position till player lets mouse button?