Animator.d.ts 3.4 KB

12345678910111213141516171819202122232425262728293031323334353637383940414243444546474849505152535455565758596061626364656667686970717273747576777879808182838485868788899091929394
  1. import Clip from './Clip';
  2. import { ArrayLike, Dictionary } from '../core/types';
  3. import { AnimationEasing } from './easing';
  4. import Animation from './Animation';
  5. declare type NumberArray = ArrayLike<number>;
  6. declare type InterpolatableType = string | number | NumberArray | NumberArray[];
  7. export declare function interpolateNumber(p0: number, p1: number, percent: number): number;
  8. export declare function step(p0: any, p1: any, percent: number): any;
  9. export declare function interpolate1DArray(out: NumberArray, p0: NumberArray, p1: NumberArray, percent: number): void;
  10. export declare function interpolate2DArray(out: NumberArray[], p0: NumberArray[], p1: NumberArray[], percent: number): void;
  11. export declare function cloneValue(value: InterpolatableType): number | any[];
  12. declare type Keyframe = {
  13. time: number;
  14. value: unknown;
  15. percent: number;
  16. additiveValue?: unknown;
  17. };
  18. declare class Track {
  19. keyframes: Keyframe[];
  20. maxTime: number;
  21. propName: string;
  22. useSpline: boolean;
  23. arrDim: number;
  24. isValueColor: boolean;
  25. interpolable: boolean;
  26. private _finished;
  27. private _needsSort;
  28. private _isAllValueEqual;
  29. private _additiveTrack;
  30. private _additiveValue;
  31. private _lastFrame;
  32. private _lastFramePercent;
  33. constructor(propName: string);
  34. isFinished(): boolean;
  35. setFinished(): void;
  36. needsAnimate(): boolean;
  37. getAdditiveTrack(): Track;
  38. addKeyframe(time: number, value: unknown): {
  39. time: number;
  40. value: unknown;
  41. percent: number;
  42. };
  43. prepare(additiveTrack?: Track): void;
  44. step(target: any, percent: number): void;
  45. private _addToTarget;
  46. }
  47. declare type DoneCallback = () => void;
  48. declare type AbortCallback = () => void;
  49. export declare type OnframeCallback<T> = (target: T, percent: number) => void;
  50. export declare type AnimationPropGetter<T> = (target: T, key: string) => InterpolatableType;
  51. export declare type AnimationPropSetter<T> = (target: T, key: string, value: InterpolatableType) => void;
  52. export default class Animator<T> {
  53. animation?: Animation;
  54. targetName?: string;
  55. scope?: string;
  56. __fromStateTransition?: string;
  57. private _tracks;
  58. private _trackKeys;
  59. private _target;
  60. private _loop;
  61. private _delay;
  62. private _maxTime;
  63. private _paused;
  64. private _started;
  65. private _additiveAnimators;
  66. private _doneCbs;
  67. private _onframeCbs;
  68. private _abortedCbs;
  69. private _clip;
  70. constructor(target: T, loop: boolean, additiveTo?: Animator<any>[]);
  71. getTarget(): T;
  72. changeTarget(target: T): void;
  73. when(time: number, props: Dictionary<any>): this;
  74. whenWithKeys(time: number, props: Dictionary<any>, propNames: string[]): this;
  75. pause(): void;
  76. resume(): void;
  77. isPaused(): boolean;
  78. private _doneCallback;
  79. private _abortedCallback;
  80. private _setTracksFinished;
  81. private _getAdditiveTrack;
  82. start(easing?: AnimationEasing, forceAnimate?: boolean): this;
  83. stop(forwardToLast?: boolean): void;
  84. delay(time: number): this;
  85. during(cb: OnframeCallback<T>): this;
  86. done(cb: DoneCallback): this;
  87. aborted(cb: AbortCallback): this;
  88. getClip(): Clip;
  89. getTrack(propName: string): Track;
  90. stopTracks(propNames: string[], forwardToLast?: boolean): boolean;
  91. saveFinalToTarget(target: T, trackKeys?: readonly string[]): void;
  92. __changeFinalValue(finalProps: Dictionary<any>, trackKeys?: readonly string[]): void;
  93. }
  94. export {};