import { System } from '../core/System'; import * as TWEEN from '@tweenjs/tween.js'; export type EasingFunction = (amount: number) => number; /** 常用缓动函数 */ export declare const Easing: { Linear: (amount: number) => number; QuadIn: (amount: number) => number; QuadOut: (amount: number) => number; QuadInOut: (amount: number) => number; CubicIn: (amount: number) => number; CubicOut: (amount: number) => number; CubicInOut: (amount: number) => number; QuartIn: (amount: number) => number; QuartOut: (amount: number) => number; QuartInOut: (amount: number) => number; QuintIn: (amount: number) => number; QuintOut: (amount: number) => number; QuintInOut: (amount: number) => number; SineIn: (amount: number) => number; SineOut: (amount: number) => number; SineInOut: (amount: number) => number; ExpoIn: (amount: number) => number; ExpoOut: (amount: number) => number; ExpoInOut: (amount: number) => number; CircIn: (amount: number) => number; CircOut: (amount: number) => number; CircInOut: (amount: number) => number; ElasticIn: (amount: number) => number; ElasticOut: (amount: number) => number; ElasticInOut: (amount: number) => number; BackIn: (amount: number) => number; BackOut: (amount: number) => number; BackInOut: (amount: number) => number; BounceIn: (amount: number) => number; BounceOut: (amount: number) => number; BounceInOut: (amount: number) => number; }; export interface TweenOptions { /** 持续时间(毫秒) */ duration: number; /** 缓动函数 */ easing?: EasingFunction; /** 延迟开始(毫秒) */ delay?: number; /** 重复次数(Infinity 为无限) */ repeat?: number; /** 是否往返(yoyo) */ yoyo?: boolean; /** 更新回调 */ onUpdate?: (object: T) => void; /** 完成回调 */ onComplete?: (object: T) => void; /** 开始回调 */ onStart?: (object: T) => void; /** 停止回调 */ onStop?: (object: T) => void; } export declare class TweenSystem extends System { static priority: number; /** Tween 组 */ private group; onUpdate(_dt: number): void; onDestroy(): void; /** * 创建并启动一个 tween */ to(object: T, target: Partial, options: TweenOptions): TWEEN.Tween; /** * 创建一个 tween 但不立即启动 */ create(object: T, target: Partial, options: TweenOptions): TWEEN.Tween; /** * 链式 tween(按顺序执行) */ chain(object: T, steps: { target: Partial; options: TweenOptions; }[]): TWEEN.Tween | null; /** * 简单的延迟执行 */ delay(duration: number): Promise; /** * 简单的数值动画 */ animate(from: number, to: number, duration: number, onUpdate: (value: number) => void, options?: Partial>): TWEEN.Tween<{ value: number; }>; /** * 停止所有 tween */ stopAll(): void; /** * 停止对象相关的所有 tween */ stopTweensOf(object: T): void; /** * 获取活跃的 tween 数量 */ getActiveTweenCount(): number; /** * 移动到位置 */ moveTo(object: { x: number; y: number; }, x: number, y: number, duration: number, easing?: EasingFunction): TWEEN.Tween<{ x: number; y: number; }>; /** * 缩放到值 */ scaleTo(object: { scaleX: number; scaleY: number; }, scaleX: number, scaleY: number, duration: number, easing?: EasingFunction): TWEEN.Tween<{ scaleX: number; scaleY: number; }>; /** * 旋转到角度 */ rotateTo(object: { rotation: number; }, rotation: number, duration: number, easing?: EasingFunction): TWEEN.Tween<{ rotation: number; }>; /** * 淡入 */ fadeIn(object: { alpha: number; }, duration: number, easing?: EasingFunction): TWEEN.Tween<{ alpha: number; }>; /** * 淡出 */ fadeOut(object: { alpha: number; }, duration: number, easing?: EasingFunction): TWEEN.Tween<{ alpha: number; }>; /** * 弹跳效果 */ bounce(object: { scaleX: number; scaleY: number; }, intensity?: number, duration?: number): TWEEN.Tween<{ scaleX: number; scaleY: number; }>; /** * 抖动效果 */ shake(object: { x: number; y: number; }, intensity?: number, duration?: number): Promise; /** * 脉冲效果 */ pulse(object: { scaleX: number; scaleY: number; }, scale?: number, duration?: number): TWEEN.Tween<{ scaleX: number; scaleY: number; }>; } //# sourceMappingURL=TweenSystem.d.ts.map