# Source: src/gameobjects/components/Animation.js

    /**
    * @author       Richard Davey <rich@photonstorm.com>
    * @copyright    2016 Photon Storm Ltd.
    * @license      {@link https://github.com/photonstorm/phaser/blob/master/license.txt|MIT License}
    */

    /**
    * The Animation Component provides a `play` method, which is a proxy to the `AnimationManager.play` method.
    *
    * @class
    */
    Phaser.Component.Animation = function () {};

    Phaser.Component.Animation.prototype = {

        /**
        * Plays an Animation.
        *
        * The animation should have previously been created via `animations.add`.
        *
        * If the animation is already playing calling this again won't do anything.
        * If you need to reset an already running animation do so directly on the Animation object itself or via `AnimationManager.stop`.
        *
        * @method
        * @param {string} name - The name of the animation to be played, e.g. "fire", "walk", "jump". Must have been previously created via 'AnimationManager.add'.
        * @param {number} [frameRate=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.
        * @param {boolean} [loop=false] - Should the animation be looped after playback. If not provided the previously set loop value of the Animation is used.
        * @param {boolean} [killOnComplete=false] - If set to true when the animation completes (only happens if loop=false) the parent Sprite will be killed.
        * @return {Phaser.Animation} A reference to playing Animation.
        */
        play: function (name, frameRate, loop, killOnComplete) {

            if (this.animations)
            {
                return this.animations.play(name, frameRate, loop, killOnComplete);
            }

        }

    };