From c6ffb37250d541bd332e99463c35b9baddd81d20 Mon Sep 17 00:00:00 2001 From: Davide Tantillo Date: Fri, 24 Jan 2025 15:45:24 +0100 Subject: [PATCH] [ts][pixi-v7][pixi-v8] Add removeSlotObjects to remove all slot objects. Closes #2696. --- spine-ts/spine-pixi-v7/src/Spine.ts | 10 ++++++++++ spine-ts/spine-pixi-v8/src/Spine.ts | 10 ++++++++++ 2 files changed, 20 insertions(+) diff --git a/spine-ts/spine-pixi-v7/src/Spine.ts b/spine-ts/spine-pixi-v7/src/Spine.ts index f4c2b6264..913637e28 100644 --- a/spine-ts/spine-pixi-v7/src/Spine.ts +++ b/spine-ts/spine-pixi-v7/src/Spine.ts @@ -402,6 +402,16 @@ export class Spine extends Container { this.slotsObject.delete(slot); } + /** + * Removes all PixiJS containers attached to any slot. + */ + public removeSlotObjects () { + for (const [, slotObject] of this.slotsObject) { + slotObject.container.removeFromParent(); + } + this.slotsObject.clear(); + } + private verticesCache: NumberArrayLike = Utils.newFloatArray(1024); private clippingSlotToPixiMasks: Record = {}; private pixiMaskCleanup (slot: Slot) { diff --git a/spine-ts/spine-pixi-v8/src/Spine.ts b/spine-ts/spine-pixi-v8/src/Spine.ts index e613ed887..7cf4c4c5e 100644 --- a/spine-ts/spine-pixi-v8/src/Spine.ts +++ b/spine-ts/spine-pixi-v8/src/Spine.ts @@ -775,6 +775,16 @@ export class Spine extends ViewContainer { } } + /** + * Removes all PixiJS containers attached to any slot. + */ + public removeSlotObjects () { + Object.entries(this._slotsObject).forEach(([slotName, slotObject]) => { + if (slotObject) slotObject.container.removeFromParent(); + delete this._slotsObject[slotName]; + }); + } + /** * Returns a container attached to a slot, or undefined if no container is attached. *