pixi-reels

SpineReelSymbol

pixi-reels


pixi-reels / spine / SpineReelSymbol

Class: SpineReelSymbol

Defined in: spine/SpineReelSymbol.ts:78

ReelSymbol implementation using Spine 2D skeletons.

Caches one Spine instance per symbolId for instant swapping, plays idle on activate, and exposes the canonical set of one-shot animations (landing, win, out, reactions). Modeled on the Bonanza / Hold & Win slot-game conventions. drop in any skeleton that follows the same vocabulary.

Import from the pixi-reels/spine subpath so non-Spine consumers can tree-shake this module and @esotericsoftware/spine-pixi-v8 out of their production bundle:

import { SpineReelSymbol } from 'pixi-reels/spine';

Extends

Constructors

Constructor

new SpineReelSymbol(options: SpineReelSymbolOptions): SpineReelSymbol;

Defined in: spine/SpineReelSymbol.ts:91

Parameters

ParameterType
optionsSpineReelSymbolOptions

Returns

SpineReelSymbol

Overrides

ReelSymbol.constructor

Properties

PropertyModifierTypeDescriptionInherited fromDefined in
viewreadonlyContainerThe PixiJS container that holds this symbol’s visual.ReelSymbol.viewsymbols/ReelSymbol.ts:37

Accessors

isDestroyed

Get Signature

get isDestroyed(): boolean;

Defined in: symbols/ReelSymbol.ts:50

Returns

boolean

Inherited from

ReelSymbol.isDestroyed


spine

Get Signature

get spine(): Spine | null;

Defined in: spine/SpineReelSymbol.ts:310

Access the underlying Spine. for advanced needs (reactions, events).

Returns

Spine | null


symbolId

Get Signature

get symbolId(): string;

Defined in: symbols/ReelSymbol.ts:46

Returns

string

Inherited from

ReelSymbol.symbolId

Methods

activate()

activate(symbolId: string): void;

Defined in: symbols/ReelSymbol.ts:59

Activate the symbol with a new identity. Called when the symbol enters the visible reel or is recycled from the pool. Resets container transform / filter state for parity with deactivate().

Parameters

ParameterType
symbolIdstring

Returns

void

Inherited from

ReelSymbol.activate


deactivate()

deactivate(): void;

Defined in: symbols/ReelSymbol.ts:75

Deactivate the symbol before returning it to the pool. Stops animations, hides the view, and resets container transform / filter state so subclass decorations don’t leak across recycles.

Returns

void

Inherited from

ReelSymbol.deactivate


destroy()

destroy(): void;

Defined in: symbols/ReelSymbol.ts:92

Returns

void

Inherited from

ReelSymbol.destroy


onActivate()

protected onActivate(symbolId: string): void;

Defined in: spine/SpineReelSymbol.ts:127

Subclass hook: set up visuals for the given symbolId.

Parameters

ParameterType
symbolIdstring

Returns

void

Overrides

ReelSymbol.onActivate


onDeactivate()

protected onDeactivate(): void;

Defined in: spine/SpineReelSymbol.ts:170

Subclass hook: clean up visuals.

Returns

void

Overrides

ReelSymbol.onDeactivate


onDestroy()

protected onDestroy(): void;

Defined in: spine/SpineReelSymbol.ts:401

Subclass hook: additional cleanup on destroy.

Returns

void

Overrides

ReelSymbol.onDestroy


onReelAnticipationStart()

onReelAnticipationStart(): void;

Defined in: symbols/ReelSymbol.ts:254

Lifecycle hook: the owning reel entered its anticipation (tease) phase. it is still spinning, but slowed enough that the strip is readable. Spin presentations that obscure symbols (blur textures, smear animations) should relax so the player can follow the tease. Also fired on symbols installed while the reel is anticipating. Implementations MUST be idempotent. Default: no-op.

Returns

void

Inherited from

ReelSymbol.onReelAnticipationStart


onReelLanded()

onReelLanded(): void;

Defined in: spine/SpineReelSymbol.ts:115

Lifecycle hook: the owning reel has landed on its final symbols. Default: no-op. Override (e.g. SpineReelSymbol.autoPlayLanding) to fire a landing animation concurrently with the bounce.

Returns

void

Overrides

ReelSymbol.onReelLanded


onReelSpinEnd()

onReelSpinEnd(): void;

Defined in: spine/SpineReelSymbol.ts:111

Lifecycle hook: the owning reel is about to stop (just before bounce). Default: no-op.

Returns

void

Overrides

ReelSymbol.onReelSpinEnd


onReelSpinStart()

onReelSpinStart(): void;

Defined in: spine/SpineReelSymbol.ts:107

Lifecycle hook: the owning reel is spinning. Default: no-op. Override (e.g. SpineReelSymbol.autoPlayBlur, StaticSpinSymbol) to swap to a spin presentation automatically.

Fired on every strip symbol (visible AND buffer rows) when the reel enters the spin phase, and again with joinedMidSpin: true on each symbol freshly installed while the reel is already spinning (pool recycling wipes symbol state, so a wrapped-in symbol can’t know the reel is moving without this). Implementations MUST be idempotent. the same instance can be notified more than once per spin.

Returns

void

Overrides

ReelSymbol.onReelSpinStart


playBlur()

playBlur(): void;

Defined in: spine/SpineReelSymbol.ts:282

Swap the primary track to the blur animation for the SPIN phase. Reverts to idle automatically on stopAnimation() or next activate.

If a one-shot promise (playWin / playLanding / playOut) is in flight on the same track, settle it first so the caller’s await doesn’t dangle when its track is hijacked.

Returns

void


playDestroy()

playDestroy(opts?: {
  delay?: number;
  signal?: AbortSignal;
}): Promise<void>;

Defined in: spine/SpineReelSymbol.ts:218

Cascade-destruction override. If the skeleton has the configured out (disintegration) animation, play it. Otherwise fall back to the base class’s GSAP scale-and-fade so a partial skeleton still cascades cleanly. opts.delay is honored (seconds, mirrors the GSAP version) so callers can stagger a winning cluster. opts.signal aborts the (pre-delay or in-flight) animation early. the spine state is snapped to the next track entry and the resolve fires immediately; the view is left at alpha: 0 for parity with the GSAP fallback so the destroyed pose is consistent across symbol kinds.

Parameters

ParameterType
opts?{ delay?: number; signal?: AbortSignal; }
opts.delay?number
opts.signal?AbortSignal

Returns

Promise<void>

Overrides

ReelSymbol.playDestroy


playLanding()

playLanding(): Promise<void>;

Defined in: spine/SpineReelSymbol.ts:195

Play the landing animation (one-shot). Call this when the reel settles. typically inside a spin:reelLanded listener.

Returns

Promise<void>


playOnTrack()

playOnTrack(
   track: number, 
   animName: string, 
   loop?: boolean): TrackEntry | null;

Defined in: spine/SpineReelSymbol.ts:294

Play an arbitrary animation on a given track. Non-blocking.

Parameters

ParameterTypeDefault value
tracknumberundefined
animNamestringundefined
loopbooleanfalse

Returns

TrackEntry | null


playOut()

playOut(): Promise<void>;

Defined in: spine/SpineReelSymbol.ts:203

Play the exit / disintegrate animation. Returns a promise that resolves when it completes. Use in cascades instead of the default alpha fade.

Returns

Promise<void>


playWin()

playWin(): Promise<void>;

Defined in: spine/SpineReelSymbol.ts:187

Play the win animation on track 0. Returns when it completes.

Returns

Promise<void>

Overrides

ReelSymbol.playWin


reset()

reset(): void;

Defined in: symbols/ReelSymbol.ts:88

Pool reset. aliases deactivate.

Returns

void

Inherited from

ReelSymbol.reset


resize()

resize(width: number, height: number): void;

Defined in: spine/SpineReelSymbol.ts:390

Resize the symbol’s visual to fit the given dimensions.

Parameters

ParameterType
widthnumber
heightnumber

Returns

void

Overrides

ReelSymbol.resize


stopAnimation()

stopAnimation(): void;

Defined in: spine/SpineReelSymbol.ts:300

Immediately stop any running animation and return to idle.

Returns

void

Overrides

ReelSymbol.stopAnimation