 
     @scrubbingTo = Math.min(Math.round(progress * @world.frames.length), @world.frames.length)
     @scrubbingPlaybackSpeed = Math.sqrt(Math.abs(@scrubbingTo - @currentFrame) * @world.dt / (scrubDuration or 0.5))
-    ease = if @fastForwarding then createjs.Ease.linear else createjs.Ease.sineInOut
     if scrubDuration
       t = createjs.Tween
         .get(@)
-        .to({currentFrame: @scrubbingTo}, scrubDuration, ease)
+        .to({currentFrame: @scrubbingTo}, scrubDuration, createjs.Ease.sineInOut)
         .call(onTweenEnd)
       t.addEventListener('change', @onFramesScrubbed)
     else


    @setWorld event.world
    @onFrameChanged(true)
    if @playing and ffToFrame = Math.min event.firstChangedFrame, @frameBeforeCast, event.world.frames.length
      ffToRatio = ffToFrame / @world.frames.length
      ffToTime = ffToFrame * @world.dt
      ffSpeed = Math.max 4, ffToTime / 3
      ffInterval = 1000 * (ffToFrame - @currentFrame) / @options.frameRate
      ffScrubDuration = 1000 * ffToTime / ffSpeed
      ffScrubDuration = Math.min(ffScrubDuration, ffInterval)
      ffFactor = ffInterval / ffScrubDuration
      if ffFactor > 1.5
        createjs.Tween.removeTweens(@)
        @scrubbingTo = null
        @fastForwarding = true
        @setProgress ffToRatio, ffScrubDuration
      else
        createjs.Tween.removeTweens(@)

  # initialization


  setProgress: (progress, scrubDuration=500) ->
    progress = Math.max(Math.min(progress, 1), 0.0)

    @fastForwardingToFrame = null
    @scrubbing = true
    onTweenEnd = =>
      @scrubbingTo = null
      @scrubbing = false
      @scrubbingPlaybackSpeed = null

    if @scrubbingTo?
      # cut to the chase for existing tween
