@visactor/vrender-animate
Version:
This module provides a graph-based animation system for VRender.
54 lines (53 loc) • 2.36 kB
TypeScript
import type { IAnimate, IGraphic } from '@visactor/vrender-core';
import type { IAnimationConfig, IAnimationCustomConstructor } from './executor';
interface IAnimateExecutor {
execute: (params: IAnimationConfig) => void;
executeItem: (params: IAnimationConfig, graphic: IGraphic, index?: number) => IAnimate[];
onStart: (cb?: () => void) => void;
onEnd: (cb?: () => void) => void;
}
export declare class AnimateExecutor implements IAnimateExecutor {
static builtInAnimateMap: Record<string, IAnimationCustomConstructor>;
static registerBuiltInAnimate(name: string, animate: IAnimationCustomConstructor): void;
_target: IGraphic;
private _animates;
private _startCallbacks;
private _endCallbacks;
private _started;
private _activeCount;
private _activeConfigList;
constructor(target: IGraphic);
get started(): boolean;
onStart(cb?: () => void): void;
onEnd(cb?: () => void): void;
getActiveAttrKeys(): string[];
hasActiveAttrs(): boolean;
preventAttrs(keys: string[]): boolean;
private _trackAnimation;
parseParams(params: IAnimationConfig, isTimeline: boolean, child?: IGraphic): IAnimationConfig;
execute(params: IAnimationConfig | IAnimationConfig[]): void;
_execute(params: IAnimationConfig): IAnimate;
private executeTypeConfigItem;
private _handleRunAnimate;
private executeTimelineItem;
private applyTimeSliceToAnimate;
private createCustomInterpolatorAnimation;
private shouldCommitAttrOutChannel;
private commitAnimatedUpdateDiffAttrsOnEnd;
private isUpdateDiffContext;
private collectAnimatedUpdateDiffAttrKeys;
private createCustomAnimation;
private createPropsFromChannel;
private resolveValue;
private getAttrOutChannelExcludedKeys;
private collectAnimatedDiffKeys;
private collectAnimatedDiffKeysFromEffect;
private collectExplicitAnimatedKeys;
private collectChannelAnimatedKeys;
private includesChannel;
private syncFinalAttrsFromContext;
executeItem(params: IAnimationConfig | IAnimationConfig[], graphic: IGraphic, index?: number, count?: number): IAnimate[];
_executeItem(params: IAnimationConfig, graphic: IGraphic, index?: number, count?: number): IAnimate | null;
stop(type?: 'start' | 'end' | Record<string, any>, callEnd?: boolean): void;
}
export {};