@@ -55,12 +55,13 @@ type MagixEventListener = Parameters<
5555 AppContext < Attributes , MagixEvents > [ "addMagixEventListener" ]
5656> [ 1 ] ;
5757
58- export class SlideController {
58+
59+ export class SlideControllerBase {
5960 public readonly context : SlideControllerOptions [ "context" ] ;
60- public readonly slide : Slide ;
61+ public slide ! : Slide ;
6162 public readonly showRenderError : boolean ;
6263 public readonly onRenderError ?: ( error : Error , pageIndex : number ) => void ;
63- public readonly onNavigate : ( index : number , origin ?: string ) => void ;
64+ public readonly onNavigate ! : ( index : number , origin ?: string ) => void ;
6465
6566 protected readonly room ?: Room ;
6667 protected readonly player ?: Player ;
@@ -82,19 +83,8 @@ export class SlideController {
8283 // 签名后的预览图
8384 public previewList : string [ ] = [ ] ;
8485
85- public constructor ( {
86- context,
87- anchor,
88- onRenderStart,
89- onPageChanged,
90- onTransitionStart,
91- onTransitionEnd,
92- onNavigate,
93- onError,
94- onRenderError,
95- showRenderError,
96- invisibleBehavior,
97- } : SlideControllerOptions ) {
86+ public constructor ( props : SlideControllerOptions ) {
87+ const { context, onRenderStart, onPageChanged, onTransitionStart, onTransitionEnd, onNavigate, onError, onRenderError, showRenderError, invisibleBehavior } = props ;
9888 this . invisibleBehavior = invisibleBehavior ?? "frozen" ;
9989 this . onRenderStart = onRenderStart ;
10090 this . onPageChanged = onPageChanged ;
@@ -109,15 +99,15 @@ export class SlideController {
10999 this . room = context . getRoom ( ) ;
110100 this . player = this . room ? undefined : ( context . getDisplayer ( ) as Player ) ;
111101 setRoomLogger ( ( this . room || this . player ) as Displayer ) ;
112- this . slide = this . createSlide ( anchor , {
113- whiteTracker : getRoomTracker ( context . getDisplayer ( ) ) ,
114- } ) ;
102+ // this.slide = this.createSlide(anchor, {
103+ // whiteTracker: getRoomTracker(context.getDisplayer()),
104+ // });
115105
116106 // the adder does not need to sync state
117107 this . syncStateOnceFlag = ! this . context . isAddApp ;
118108 this . visible = document . visibilityState === "visible" ;
119109 this . savedIsFrozen = false ;
120- this . initialize ( ) ;
110+ // this.initialize();
121111 }
122112
123113 public ready = false ;
@@ -407,3 +397,13 @@ export class SlideController {
407397 }
408398 } ;
409399}
400+
401+ export class SlideController extends SlideControllerBase {
402+ public constructor ( props : SlideControllerOptions ) {
403+ super ( props )
404+ this . slide = this . createSlide ( props . anchor , {
405+ whiteTracker : getRoomTracker ( props . context . getDisplayer ( ) ) ,
406+ } ) ;
407+ this . initialize ( ) ;
408+ }
409+ }
0 commit comments