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. *