Hmm i really like your question made me think for a second.
I know with TextureButton there exists a disable property but with TouchScreenButtons you might have to set _input
to false. also TextureButton has the _gui_input()
signal which guarantees only that button is being pressed
But if it must be a TouchScreenButton first connect the on_scroll started/exited signal to a script:
func _on_ScrollContainer_scroll_ended():
var box = Rect2(rect_global_position, rect_size)
for child in $VBoxContainer.get_children():
var centre_point = child.global_position + (TouchScreenButtonSize / 2)
if !box.has_point(centre_point):
child.set_process_input(false)
else:
child.set_process_input(true)