Class Tween<T>

Javascript Tweening Engine

Super simple, fast and easy to use tweening engine which incorporates optimised Robert Penner's equation

https://github.com/sole/Tween.js

author sole / http://soledadpenades.com
author mr.doob / http://mrdoob.com
author Robert Eisele / http://www.xarg.org
author Philippe / http://philippe.elsass.me
author Robert Penner / http://www.robertpenner.com/easing_terms_of_use.html
author Paul Lewis / http://www.aerotwist.com/
author lechecacharro
author Josh Faul / http://jocafa.com/

Type Parameters

  • T extends Record<string, unknown>

Constructors

  • Type Parameters

    • T extends Record<string, unknown>

    Parameters

    • object: T

      object on which to apply the tween

    Returns Tween<T>

    // add a tween to change the object pos.x and pos.y variable to 200 in 3 seconds
    tween = new me.Tween(myObject.pos).to({
    x: 200,
    y: 200,
    }, {
    duration: 3000,
    easing: me.Tween.Easing.Bounce.Out,
    autoStart : true
    }).onComplete(myFunc);

Properties

_chainedTweens: Tween<Record<string, unknown>>[]
_delayTime: number
_duration: number
_easingFunction: EasingFunction
_interpolationFunction: InterpolationFunction
_object: T
_onCompleteCallback: null | OnCompleteCallback<T>
_onStartCallback: null | OnStartCallback<T>
_onStartCallbackFired: boolean
_onUpdateCallback: null | OnUpdateCallback<T>
_repeat: number
_reversed: boolean
_startTime: null | number
_tweenTimeTracker: number
_valuesEnd: Record<string, unknown>
_valuesStart: Record<string, unknown>
_valuesStartRepeat: Record<string, unknown>
_yoyo: boolean
isPersistent: boolean
isRenderable: boolean
updateWhenPaused: boolean

Accessors

  • get Easing(): {
        Back: {
            In: ((k: number) => number);
            InOut: ((k: number) => number);
            Out: ((k: number) => number);
        };
        Bounce: {
            In: ((k: number) => number);
            InOut: ((k: number) => number);
            Out: ((k: number) => number);
        };
        Circular: {
            In: ((k: number) => number);
            InOut: ((k: number) => number);
            Out: ((k: number) => number);
        };
        Cubic: {
            In: ((k: number) => number);
            InOut: ((k: number) => number);
            Out: ((k: number) => number);
        };
        Elastic: {
            In: ((k: number) => number);
            InOut: ((k: number) => number);
            Out: ((k: number) => number);
        };
        Exponential: {
            In: ((k: number) => number);
            InOut: ((k: number) => number);
            Out: ((k: number) => number);
        };
        Linear: {
            None: ((k: number) => number);
        };
        Quadratic: {
            In: ((k: number) => number);
            InOut: ((k: number) => number);
            Out: ((k: number) => number);
        };
        Quartic: {};
        Quintic: {};
        Sinusoidal: {
            In: ((k: number) => number);
            InOut: ((k: number) => number);
            Out: ((k: number) => number);
        };
    }
  • Returns {
        Back: {
            In: ((k: number) => number);
            InOut: ((k: number) => number);
            Out: ((k: number) => number);
        };
        Bounce: {
            In: ((k: number) => number);
            InOut: ((k: number) => number);
            Out: ((k: number) => number);
        };
        Circular: {
            In: ((k: number) => number);
            InOut: ((k: number) => number);
            Out: ((k: number) => number);
        };
        Cubic: {
            In: ((k: number) => number);
            InOut: ((k: number) => number);
            Out: ((k: number) => number);
        };
        Elastic: {
            In: ((k: number) => number);
            InOut: ((k: number) => number);
            Out: ((k: number) => number);
        };
        Exponential: {
            In: ((k: number) => number);
            InOut: ((k: number) => number);
            Out: ((k: number) => number);
        };
        Linear: {
            None: ((k: number) => number);
        };
        Quadratic: {
            In: ((k: number) => number);
            InOut: ((k: number) => number);
            Out: ((k: number) => number);
        };
        Quartic: {};
        Quintic: {};
        Sinusoidal: {
            In: ((k: number) => number);
            InOut: ((k: number) => number);
            Out: ((k: number) => number);
        };
    }

    • Back: {
          In: ((k: number) => number);
          InOut: ((k: number) => number);
          Out: ((k: number) => number);
      }
      • In: ((k: number) => number)
          • (k): number
          • Parameters

            • k: number

            Returns number

      • InOut: ((k: number) => number)
          • (k): number
          • Parameters

            • k: number

            Returns number

      • Out: ((k: number) => number)
          • (k): number
          • Parameters

            • k: number

            Returns number

    • Bounce: {
          In: ((k: number) => number);
          InOut: ((k: number) => number);
          Out: ((k: number) => number);
      }
      • In: ((k: number) => number)
          • (k): number
          • Parameters

            • k: number

            Returns number

      • InOut: ((k: number) => number)
          • (k): number
          • Parameters

            • k: number

            Returns number

      • Out: ((k: number) => number)
          • (k): number
          • Parameters

            • k: number

            Returns number

    • Circular: {
          In: ((k: number) => number);
          InOut: ((k: number) => number);
          Out: ((k: number) => number);
      }
      • In: ((k: number) => number)
          • (k): number
          • Parameters

            • k: number

            Returns number

      • InOut: ((k: number) => number)
          • (k): number
          • Parameters

            • k: number

            Returns number

      • Out: ((k: number) => number)
          • (k): number
          • Parameters

            • k: number

            Returns number

    • Cubic: {
          In: ((k: number) => number);
          InOut: ((k: number) => number);
          Out: ((k: number) => number);
      }
      • In: ((k: number) => number)
          • (k): number
          • Parameters

            • k: number

            Returns number

      • InOut: ((k: number) => number)
          • (k): number
          • Parameters

            • k: number

            Returns number

      • Out: ((k: number) => number)
          • (k): number
          • Parameters

            • k: number

            Returns number

    • Elastic: {
          In: ((k: number) => number);
          InOut: ((k: number) => number);
          Out: ((k: number) => number);
      }
      • In: ((k: number) => number)
          • (k): number
          • Parameters

            • k: number

            Returns number

      • InOut: ((k: number) => number)
          • (k): number
          • Parameters

            • k: number

            Returns number

      • Out: ((k: number) => number)
          • (k): number
          • Parameters

            • k: number

            Returns number

    • Exponential: {
          In: ((k: number) => number);
          InOut: ((k: number) => number);
          Out: ((k: number) => number);
      }
      • In: ((k: number) => number)
          • (k): number
          • Parameters

            • k: number

            Returns number

      • InOut: ((k: number) => number)
          • (k): number
          • Parameters

            • k: number

            Returns number

      • Out: ((k: number) => number)
          • (k): number
          • Parameters

            • k: number

            Returns number

    • Linear: {
          None: ((k: number) => number);
      }
      • None: ((k: number) => number)
          • (k): number
          • Parameters

            • k: number

            Returns number

    • Quadratic: {
          In: ((k: number) => number);
          InOut: ((k: number) => number);
          Out: ((k: number) => number);
      }
      • In: ((k: number) => number)
          • (k): number
          • Parameters

            • k: number

            Returns number

      • InOut: ((k: number) => number)
          • (k): number
          • Parameters

            • k: number

            Returns number

      • Out: ((k: number) => number)
          • (k): number
          • Parameters

            • k: number

            Returns number

    • Quartic: {}
      • Quintic: {}
        • Sinusoidal: {
              In: ((k: number) => number);
              InOut: ((k: number) => number);
              Out: ((k: number) => number);
          }
          • In: ((k: number) => number)
              • (k): number
              • Parameters

                • k: number

                Returns number

          • InOut: ((k: number) => number)
              • (k): number
              • Parameters

                • k: number

                Returns number

          • Out: ((k: number) => number)
              • (k): number
              • Parameters

                • k: number

                Returns number

      • get Interpolation(): {
            Bezier: ((v: number[], k: number) => number);
            CatmullRom: ((v: number[], k: number) => number);
            Linear: ((v: number[], k: number) => number);
        }
      • Returns {
            Bezier: ((v: number[], k: number) => number);
            CatmullRom: ((v: number[], k: number) => number);
            Linear: ((v: number[], k: number) => number);
        }

        • Bezier: ((v: number[], k: number) => number)
            • (v, k): number
            • Parameters

              • v: number[]
              • k: number

              Returns number

        • CatmullRom: ((v: number[], k: number) => number)
            • (v, k): number
            • Parameters

              • v: number[]
              • k: number

              Returns number

        • Linear: ((v: number[], k: number) => number)
            • (v, k): number
            • Parameters

              • v: number[]
              • k: number

              Returns number

      Methods

      • delay the tween

        Parameters

        • amount: number

          delay amount expressed in milliseconds

        Returns Tween<T>

        this instance for object chaining

      • set the easing function

        Parameters

        • easing: EasingFunction

          easing function

        Returns Tween<T>

        this instance for object chaining

      • set the interpolation function

        Parameters

        • interpolation: InterpolationFunction

          interpolation function

        Returns Tween<T>

        this instance for object chaining

      • onComplete callback

        Parameters

        • onCompleteCallback: OnCompleteCallback<T>

          callback

        Returns Tween<T>

        this instance for object chaining

      • onStart callback

        Parameters

        • onStartCallback: OnStartCallback<T>

          callback

        Returns Tween<T>

        this instance for object chaining

      • onUpdate callback

        Parameters

        • onUpdateCallback: OnUpdateCallback<T>

          callback

        Returns Tween<T>

        this instance for object chaining

      • Repeat the tween

        Parameters

        • times: number

          amount of times the tween should be repeated

        Returns Tween<T>

        this instance for object chaining

      • start the tween

        Parameters

        • Optionaltime: number = ...

          the current time when the tween was started

        Returns Tween<T>

        this instance for object chaining

      • object properties to be updated and duration

        Parameters

        • properties: Record<string, unknown>

          hash of properties

        • Optionaloptions: {
              autoStart?: boolean;
              delay?: number;
              duration?: number;
              easing?: EasingFunction;
              interpolation?: InterpolationFunction;
              repeat?: number;
              yoyo?: boolean;
          }

          object of tween properties, or a duration if a numeric value is passed

          • OptionalautoStart?: boolean

            allow this tween to start automatically. Otherwise call me.Tween.start().

          • Optionaldelay?: number

            delay amount expressed in milliseconds

          • Optionalduration?: number

            tween duration

          • Optionaleasing?: EasingFunction

            easing function

          • Optionalinterpolation?: InterpolationFunction

            interpolation function

          • Optionalrepeat?: number

            amount of times the tween should be repeated

          • Optionalyoyo?: boolean

            allows the tween to bounce back to their original value when finished. To be used together with repeat to create endless loops.

        Returns Tween<T>

        this instance for object chaining

      • Allows the tween to bounce back to their original value when finished. To be used together with repeat to create endless loops.

        Parameters

        • yoyo: boolean

          flag

        Returns Tween<T>

        this instance for object chaining