code: function Animator(target, loop, getter, setter, interpolater) {
      this._tracks = {};
      this._target = target;
  
      this._loop = loop || false;
  
      this._getter = getter || defaultGetter;
      this._setter = setter || defaultSetter;
  
      this._interpolater = interpolater || null;
  
      this._delay = 0;
  
      this._doneList = [];
  
      this._onframeList = [];
  
      this._clipList = [];
  
      this._maxTime = 0;
  
      this._lastKFTime = 0;
  }
docs: @description Animator object can only be created by Animation.prototype.animate method.
  After created, we can use {@link clay.animation.Animator#when} to add all keyframes and {@link clay.animation.Animator#start} it.
  Clips will be automatically created and added to the animation instance which created this deferred object.
  
  @constructor clay.animation.Animator
  
  @param {Object} target
  @param {boolean} loop
  @param {Function} getter
  @param {Function} setter
  @param {Function} interpolater