# Class: AnimationManager

## Phaser. AnimationManager

Phaser.AnimationManager

#### new AnimationManager(sprite)

  The Animation Manager is used to add, play and update Phaser Animations. Any Game Object such as Phaser.Sprite that supports animation contains a single AnimationManager instance.

  ##### Parameters:

  Name | Type | Description
  --- | --- | ---
  `sprite` | Phaser.Sprite | A reference to the Game Object that owns this AnimationManager.

  Source:
    - animation/AnimationManager.js, line 15

### Members

#### currentAnim

  ##### Properties:

  Name | Type | Description
  --- | --- | ---
  `currentAnim` | Phaser.Animation | The currently displayed animation, if any.

  Default Value:
    - null
  Source:
    - animation/AnimationManager.js, line 37

#### currentFrame

  ##### Properties:

  Name | Type | Description
  --- | --- | ---
  `currentFrame` | Phaser.Frame | The currently displayed Frame of animation, if any.

  Default Value:
    - null
  Source:
    - animation/AnimationManager.js, line 31

#### frame

  ##### Properties:

  Name | Type | Description
  --- | --- | ---
  `frame` | number | Gets or sets the current frame index and updates the Texture Cache for display.

  Source:
    - animation/AnimationManager.js, line 403

#### <readonly> frameData

  ##### Properties:

  Name | Type | Description
  --- | --- | ---
  `frameData` | Phaser.FrameData | The current animations FrameData.

  Source:
    - animation/AnimationManager.js, line 349

#### frameName

  ##### Properties:

  Name | Type | Description
  --- | --- | ---
  `frameName` | string | Gets or sets the current frame name and updates the Texture Cache for display.

  Source:
    - animation/AnimationManager.js, line 441

#### <readonly> frameTotal

  ##### Properties:

  Name | Type | Description
  --- | --- | ---
  `frameTotal` | number | The total number of frames in the currently loaded FrameData, or -1 if no FrameData is loaded.

  Source:
    - animation/AnimationManager.js, line 362

#### game

  ##### Properties:

  Name | Type | Description
  --- | --- | ---
  `game` | Phaser.Game | A reference to the currently running Game.

  Source:
    - animation/AnimationManager.js, line 25

#### isLoaded

  ##### Properties:

  Name | Type | Description
  --- | --- | ---
  `isLoaded` | boolean | Set to true once animation data has been loaded.

  Default Value:
    - false
  Source:
    - animation/AnimationManager.js, line 49

#### paused

  ##### Properties:

  Name | Type | Description
  --- | --- | ---
  `paused` | boolean | Gets and sets the paused state of the current animation.

  Source:
    - animation/AnimationManager.js, line 383

#### sprite

  ##### Properties:

  Name | Type | Description
  --- | --- | ---
  `sprite` | Phaser.Sprite | A reference to the parent Sprite that owns this AnimationManager.

  Source:
    - animation/AnimationManager.js, line 20

#### updateIfVisible

  ##### Properties:

  Name | Type | Description
  --- | --- | ---
  `updateIfVisible` | boolean | Should the animation data continue to update even if the Sprite.visible is set to false.

  Default Value:
    - true
  Source:
    - animation/AnimationManager.js, line 43

### Methods

#### add(name, frames, frameRate, loop, useNumericIndex) → {Phaser.Animation}

  Adds a new animation under the given key. Optionally set the frames, frame rate and loop. Animations added in this way are played back with the play function.

  ##### Parameters:

  Name | Type | Argument | Default | Description
  --- | --- | --- | --- | ---
  `name` | string |  |  | The unique (within this Sprite) name for the animation, i.e. "run", "fire", "walk".
  `frames` | Array | <optional> | null | An array of numbers/strings that correspond to the frames to add to this animation and in which order. e.g. [1, 2, 3] or ['run0', 'run1', run2]). If null then all frames will be used.
  `frameRate` | number | <optional> | 60 | The speed at which the animation should play. The speed is given in frames per second.
  `loop` | boolean | <optional> | false | Whether or not the animation is looped or just plays once.
  `useNumericIndex` | boolean | <optional> | true | Are the given frames using numeric indexes (default) or strings?

  Source:
    - animation/AnimationManager.js, line 90

  ##### Returns:

  The Animation object that was created.

  Type
    Phaser.Animation

#### destroy()

  Destroys all references this AnimationManager contains. Iterates through the list of animations stored in this manager and calls destroy on each of them.

  Source:
    - animation/AnimationManager.js, line 319

#### getAnimation(name) → {Phaser.Animation}

  Returns an animation that was previously added by name.

  ##### Parameters:

  Name | Type | Description
  --- | --- | ---
  `name` | string | The name of the animation to be returned, e.g. "fire".

  Source:
    - animation/AnimationManager.js, line 281

  ##### Returns:

  The Animation instance, if found, otherwise null.

  Type
    Phaser.Animation

#### play(name, frameRate, loop, killOnComplete) → {Phaser.Animation}

  Play an animation based on the given key. The animation should previously have been added via sprite.animations.add() If the requested animation is already playing this request will be ignored. If you need to reset an already running animation do so directly on the Animation object itself.

  ##### Parameters:

  Name | Type | Argument | Default | Description
  --- | --- | --- | --- | ---
  `name` | string |  |  | The name of the animation to be played, e.g. "fire", "walk", "jump".
  `frameRate` | number | <optional> | null | The framerate to play the animation at. The speed is given in frames per second. If not provided the previously set frameRate of the Animation is used.
  `loop` | boolean | <optional> | false | Should the animation be looped after playback. If not provided the previously set loop value of the Animation is used.
  `killOnComplete` | boolean | <optional> | false | If set to true when the animation completes (only happens if loop=false) the parent Sprite will be killed.

  Source:
    - animation/AnimationManager.js, line 189

  ##### Returns:

  A reference to playing Animation instance.

  Type
    Phaser.Animation

#### refreshFrame()

  Refreshes the current frame data back to the parent Sprite and also resets the texture data.

  Source:
    - animation/AnimationManager.js, line 302

#### stop(name, resetFrame)

  Stop playback of an animation. If a name is given that specific animation is stopped, otherwise the current animation is stopped. The currentAnim property of the AnimationManager is automatically set to the animation given.

  ##### Parameters:

  Name | Type | Argument | Default | Description
  --- | --- | --- | --- | ---
  `name` | string | <optional> | null | The name of the animation to be stopped, e.g. "fire". If none is given the currently running animation is stopped.
  `resetFrame` | boolean | <optional> | false | When the animation is stopped should the currentFrame be set to the first frame of the animation (true) or paused on the last frame displayed (false)

  Source:
    - animation/AnimationManager.js, line 227

#### <protected> update() → {boolean}

  The main update function is called by the Sprites update loop. It's responsible for updating animation frames and firing related events.

  Source:
    - animation/AnimationManager.js, line 257

  ##### Returns:

  True if a new animation frame has been set, otherwise false.

  Type
    boolean

#### validateFrames(frames, useNumericIndex) → {boolean}

  Check whether the frames in the given array are valid and exist.

  ##### Parameters:

  Name | Type | Argument | Default | Description
  --- | --- | --- | --- | ---
  `frames` | Array |  |  | An array of frames to be validated.
  `useNumericIndex` | boolean | <optional> | true | Validate the frames based on their numeric index (true) or string index (false)

  Source:
    - animation/AnimationManager.js, line 155

  ##### Returns:

  True if all given Frames are valid, otherwise false.

  Type
    boolean