warp method
Changes the playback speed, within the passed time interval, by modifying
timeScale gradually from startTimeScale
to
endTimeScale
.
This method can be chained.
Implementation
AnimationAction warp(num startTimeScale, num endTimeScale, num duration) {
final mixer = this.mixer, now = mixer.time, timeScale = this.timeScale;
Interpolant? interpolant = _timeScaleInterpolant;
if (interpolant == null) {
interpolant = mixer.lendControlInterpolant();
_timeScaleInterpolant = interpolant;
}
final List<num> times = interpolant.parameterPositions;
final List<num> values = interpolant.sampleValues;
times[0] = now;
times[1] = now + duration;
values[0] = startTimeScale / timeScale;
values[1] = endTimeScale / timeScale;
return this;
}