From 14bfef61dd9aeb22d7b12368a85a62126432b080 Mon Sep 17 00:00:00 2001 From: Davide Tantillo Date: Tue, 24 Feb 2026 11:35:38 +0100 Subject: [PATCH] [ts][pixi-v7][pixi-v8] Clean up ticker correctly. --- spine-ts/spine-pixi-v7/src/Spine.ts | 2 ++ spine-ts/spine-pixi-v8/src/Spine.ts | 2 ++ 2 files changed, 4 insertions(+) diff --git a/spine-ts/spine-pixi-v7/src/Spine.ts b/spine-ts/spine-pixi-v7/src/Spine.ts index 08e317a8c..651f77d95 100644 --- a/spine-ts/spine-pixi-v7/src/Spine.ts +++ b/spine-ts/spine-pixi-v7/src/Spine.ts @@ -325,6 +325,7 @@ export class Spine extends Container { } /** Sets the ticker to use when {@link autoUpdate} is `true`. If `autoUpdate` is already `true`, the update callback will be moved from the old ticker to the new one. */ public set ticker (value: Ticker) { + value = value ?? Ticker.shared; if (this._ticker === value) return; if (this._autoUpdate) { @@ -453,6 +454,7 @@ export class Spine extends Container { /** Destroy Spine game object elements, then call the {@link Container.destroy} with the given options */ public override destroy (options?: boolean | IDestroyOptions | undefined): void { if (this.autoUpdate) this.autoUpdate = false; + (this._ticker as any) = null; for (const [, mesh] of this.meshesCache) { mesh?.destroy(); } diff --git a/spine-ts/spine-pixi-v8/src/Spine.ts b/spine-ts/spine-pixi-v8/src/Spine.ts index a7084d77f..ae173aa16 100644 --- a/spine-ts/spine-pixi-v8/src/Spine.ts +++ b/spine-ts/spine-pixi-v8/src/Spine.ts @@ -380,6 +380,7 @@ export class Spine extends ViewContainer { } /** Sets the ticker to use when {@link autoUpdate} is `true`. If `autoUpdate` is already `true`, the update callback will be moved from the old ticker to the new one. */ public set ticker (value: Ticker) { + value = value ?? Ticker.shared; if (this._ticker === value) return; if (this._autoUpdate) { @@ -1050,6 +1051,7 @@ export class Spine extends ViewContainer { super.destroy(options); this._ticker.remove(this.internalUpdate, this); + (this._ticker as any) = null; this.state.clearListeners(); this.debug = undefined; this.skeleton = null as any;