1234567891011121314151617181920212223242526272829303132333435363738394041424344454647484950 |
- class Animation {
- constructor( nodes, info ) {
- this.nodes = nodes;
- this.info = info;
- this.animationLoop = null;
- this.requestId = null;
- this._init();
- }
- _init() {
- const update = ( time, frame ) => {
- this.requestId = self.requestAnimationFrame( update );
- if ( this.info.autoReset === true ) this.info.reset();
- this.nodes.nodeFrame.update();
- this.info.frame = this.nodes.nodeFrame.frameId;
- if ( this.animationLoop !== null ) this.animationLoop( time, frame );
- };
- update();
- }
- dispose() {
- self.cancelAnimationFrame( this.requestId );
- this.requestId = null;
- }
- setAnimationLoop( callback ) {
- this.animationLoop = callback;
- }
- }
- export default Animation;
|