const { ccclass , property } = cc . _decorator ; @ ccclass export default class Scene_transition extends cc . Component { @ property ( [ cc . Node ] ) switchNodeList : cc . Node [ ] = [ ] ; fadeRadius : number = 0.1 ; onLoad ( ) { this . switchNodeList . forEach ( ( node , idx ) => { node . zIndex = this . switchNodeList . length - idx ; } ) ; } isTransforming : boolean = false ; bgTramsform ( ) { if ( this . isTransforming ) return ; this . isTransforming = true ; let time = 0.0 ; let node = this . switchNodeList [ 0 ] ; let material = node . getComponent ( cc . Sprite ) . getMaterial ( 0 ) ; material . setProperty ( 'u_fade_radius' , this . fadeRadius ) ; material . setProperty ( 'u_time' , time ) ; material . define ( 'USE_TRAMSFORM' , true , 0 , true ) ; let timer = setInterval ( ( ) => { time += 0.03 ; material . setProperty ( 'u_time' , time ) ; if ( time > 1.0 + this . fadeRadius ) { this . switchNodeList . shift ( ) ; this . switchNodeList . push ( node ) ; this . switchNodeList . forEach ( ( node , idx ) => { node . zIndex = this . switchNodeList . length - idx ; } ) ; material . define ( 'USE_TRAMSFORM' , false , 0 , true ) ; this . isTransforming = false ; timer && clearInterval ( timer ) ; } } , 30 ) ; } }