@@ -7,7 +7,12 @@ import { baseTransform } from '@/store/stageInterface';
77import { generateTimelineObj } from '@/Core/controller/stage/pixi/animations/timeline' ;
88import { WebGAL } from '@/Core/WebGAL' ;
99import PixiStage , { IAnimationObject } from '@/Core/controller/stage/pixi/PixiController' ;
10- import { DEFALUT_FIG_IN_DURATION , DEFALUT_FIG_OUT_DURATION } from '../constants' ;
10+ import {
11+ DEFAULT_BG_IN_DURATION ,
12+ DEFAULT_BG_OUT_DURATION ,
13+ DEFAULT_FIG_IN_DURATION ,
14+ DEFAULT_FIG_OUT_DURATION ,
15+ } from '../constants' ;
1116
1217// eslint-disable-next-line max-params
1318export function getAnimationObject ( animationName : string , target : string , duration : number , writeDefault : boolean ) {
@@ -57,40 +62,46 @@ export function getEnterExitAnimation(
5762 animation : IAnimationObject | null ;
5863} {
5964 if ( type === 'enter' ) {
60- let duration = DEFALUT_FIG_IN_DURATION ;
65+ let duration = DEFAULT_FIG_IN_DURATION ;
6166 if ( isBg ) {
62- duration = 1500 ;
67+ duration = DEFAULT_BG_IN_DURATION ;
6368 }
69+ duration =
70+ webgalStore . getState ( ) . stage . animationSettings . find ( ( setting ) => setting . target === target ) ?. enterDuration ??
71+ duration ;
6472 // 走默认动画
6573 let animation : IAnimationObject | null = generateUniversalSoftInAnimationObj ( realTarget ?? target , duration ) ;
6674
6775 const transformState = webgalStore . getState ( ) . stage . effects ;
6876 const targetEffect = transformState . find ( ( effect ) => effect . target === target ) ;
6977
70- const animarionName = WebGAL . animationManager . nextEnterAnimationName . get ( target ) ;
71- if ( animarionName && ! targetEffect ) {
78+ const animationName = webgalStore
79+ . getState ( )
80+ . stage . animationSettings . find ( ( setting ) => setting . target === target ) ?. enterAnimationName ;
81+ if ( animationName && ! targetEffect ) {
7282 logger . debug ( '取代默认进入动画' , target ) ;
73- animation = getAnimationObject ( animarionName , realTarget ?? target , getAnimateDuration ( animarionName ) , false ) ;
74- duration = getAnimateDuration ( animarionName ) ;
75- // 用后重置
76- WebGAL . animationManager . nextEnterAnimationName . delete ( target ) ;
83+ animation = getAnimationObject ( animationName , realTarget ?? target , getAnimateDuration ( animationName ) , false ) ;
84+ duration = getAnimateDuration ( animationName ) ;
7785 }
7886 return { duration, animation } ;
7987 } else {
8088 // exit
81- let duration = DEFALUT_FIG_OUT_DURATION ;
89+ let duration = DEFAULT_FIG_OUT_DURATION ;
8290 if ( isBg ) {
83- duration = 1500 ;
91+ duration = DEFAULT_BG_OUT_DURATION ;
8492 }
93+ duration =
94+ webgalStore . getState ( ) . stage . animationSettings . find ( ( setting ) => setting . target + '-off' === target )
95+ ?. exitDuration ?? duration ;
8596 // 走默认动画
8697 let animation : IAnimationObject | null = generateUniversalSoftOffAnimationObj ( realTarget ?? target , duration ) ;
87- const animarionName = WebGAL . animationManager . nextExitAnimationName . get ( target ) ;
88- if ( animarionName ) {
98+ const animationName = webgalStore
99+ . getState ( )
100+ . stage . animationSettings . find ( ( setting ) => setting . target + '-off' === target ) ?. exitAnimationName ;
101+ if ( animationName ) {
89102 logger . debug ( '取代默认退出动画' , target ) ;
90- animation = getAnimationObject ( animarionName , realTarget ?? target , getAnimateDuration ( animarionName ) , false ) ;
91- duration = getAnimateDuration ( animarionName ) ;
92- // 用后重置
93- WebGAL . animationManager . nextExitAnimationName . delete ( target ) ;
103+ animation = getAnimationObject ( animationName , realTarget ?? target , getAnimateDuration ( animationName ) , false ) ;
104+ duration = getAnimateDuration ( animationName ) ;
94105 }
95106 return { duration, animation } ;
96107 }
0 commit comments