--A local script inside a frame function Done() print(script.Parent.AbsolutePosition) end local Direction = Enum.EasingDirection.InOut local Style = Enum.EasingStyle.Quad local Time = 1 script.Parent:TweenPosition( UDim2.new(0,50,0,50),Direction ,Style,Time,true,Done())
I expected Done() to print 50,50 but its being called when the tween starts instead of when it ends, what am I doing wrong?
You are calling Done()
instead of passing it in as an argument, that's why it ran on the same line as you used TweenPosition
. Calling a function would return a value which in this case is nil
. What you have to do is remove the parentheses ()
.
--A local script inside a frame function Done() print(script.Parent.AbsolutePosition) end local Direction = Enum.EasingDirection.InOut local Style = Enum.EasingStyle.Quad local Time = 1 script.Parent:TweenPosition( UDim2.new(0,50,0,50),Direction ,Style,Time,true,Done) -- removed parentheses