[ts][player] Dispose input on dispose.

This commit is contained in:
Davide Tantillo 2025-05-16 12:27:58 +02:00
parent fd20a0c009
commit 000b12c6bf

View File

@ -236,6 +236,7 @@ export class SpinePlayer implements Disposable {
private previousViewport: Viewport = {} as Viewport; private previousViewport: Viewport = {} as Viewport;
private viewportTransitionStart = 0; private viewportTransitionStart = 0;
private eventListeners: Array<{ target: any, event: any, func: any }> = []; private eventListeners: Array<{ target: any, event: any, func: any }> = [];
private input?: Input;
constructor (parent: HTMLElement | string, private config: SpinePlayerConfig) { constructor (parent: HTMLElement | string, private config: SpinePlayerConfig) {
let parentDom = typeof parent === "string" ? document.getElementById(parent) : parent; let parentDom = typeof parent === "string" ? document.getElementById(parent) : parent;
@ -283,6 +284,7 @@ export class SpinePlayer implements Disposable {
var eventListener = this.eventListeners[i]; var eventListener = this.eventListeners[i];
eventListener.target.removeEventListener(eventListener.event, eventListener.func); eventListener.target.removeEventListener(eventListener.event, eventListener.func);
} }
this.input?.dispose();
this.parent.removeChild(this.dom); this.parent.removeChild(this.dom);
this.disposed = true; this.disposed = true;
} }
@ -615,7 +617,8 @@ export class SpinePlayer implements Disposable {
return best; return best;
}; };
new Input(canvas).addListener({ this.input = new Input(canvas);
this.input.addListener({
down: (x, y) => { down: (x, y) => {
target = closest(x, y); target = closest(x, y);
}, },