Recently I was writing some code that would disconnect two arrow buttons if the screen was cleared. Because the clear button can be clicked again before the events are connected again, I decided to use a boolean variable canDisconnect that is set to true when the events are connected again. Here is an excerpt from my code:
local db = true
clearButton.MouseButton1Click:Connect(function()
if db then
db = false
if canDisconnect then
connection:Disconnect()
connectionTwo:Disconnect()
end
clearScreen(frame)
wait(5)
db = true
end
end)
One of the events that changes canDisconnect is this one:
connection = rightArrowButton.MouseButton1Click:Connect(function()
canDisconnect = true
if db then
db = false
if pages[pageNumber.Value + 1] then
print("there is another page")
pageNumber.Value = pageNumber.Value + 1
loadPage(pages[pageNumber.Value], frame)
getIngredients.OnInvoke = function(name)
--code
end
end
wait(1)
db = true
end
end)
It would be much better for me if I could use :Disconnect() on connection even if it has already been :Disconnected. This leads into the second part of my question. How does :Disconnect() work? I know what it does, however, I don't know how it works. Does it set connection = nil? For some reason it does not seem like that would work. I would appreciate any insight in this matter. Thanks!
