function SpringObject.ObserveOnSignal(i,H)return Observable.new(function(X)local u=Maid.new()local E,B=StepUtils.bindToSignal(H,function()local H,u=SpringUtils.animating(i._currentSpring)X:Fire(SpringUtils.fromLinearIfNeeded(u))return H end)u:GiveTask(B)u:GiveTask(i.Changed:Connect(E))E()return u end)end
--[=[
	Observes the spring animating
	@param signal RBXScriptSignal
	@return Observable<T>
]=]
function SpringObject:ObserveOnSignal(signal)
	return Observable.new(function(sub)
		local maid = Maid.new()

		local startAnimate, stopAnimate = StepUtils.bindToSignal(signal, function()
			local animating, position = SpringUtils.animating(self._currentSpring)
			sub:Fire(SpringUtils.fromLinearIfNeeded(position))
			return animating
		end)

		maid:GiveTask(stopAnimate)
		maid:GiveTask(self.Changed:Connect(startAnimate))
		startAnimate()

		return maid
	end)
end
