gotoElapsedTime(time) {
    let duration = this.duration
    let delay = this.delay
    if (time >= delay) {
      time = Math.min(time, this.totalElapsed) - delay //never go past final value
      let progress = (time % duration) / duration
      if (progress === 0 && time !== 0) progress = 1
      progress = this.easing(progress)
      if (this.direction === 'reverse' || (this.direction === 'alternate' && Math.ceil(time / duration) % 2 === 0)) {
        progress = 1 - progress
      }
      this.callback(this.interpolate(this.fromValue, this.toValue, progress))
    }
  }
For a given elapsed time relative to the start of the tween, calculates the value at that time and calls the
`callback` function with that value. If the given time is during the `delay` period, the callback will not be
invoked.
@param {number} time