UNPKG

skynovel

Version:
58 lines (52 loc) 2.38 kB
/* ***** BEGIN LICENSE BLOCK ***** Copyright (c) 2019-2020 Famibee (famibee.blog38.fc2.com) This software is released under the MIT License. http://opensource.org/licenses/mit-license.php ** ***** END LICENSE BLOCK ***** */ const Tween = require('@tweenjs/tween.js').default; // =============== Tween export interface ITwInf { tw : TWEEN.Tween | null; resume : boolean; onComplete? : ()=> void; } export class CmnTween { private static readonly hEase: {[name: string]: (k: number)=> number} = { 'Back.In' : k=> Tween.Easing.Back.In(k), 'Back.InOut' : k=> Tween.Easing.Back.InOut(k), 'Back.Out' : k=> Tween.Easing.Back.Out(k), 'Bounce.In' : k=> Tween.Easing.Bounce.In(k), 'Bounce.InOut' : k=> Tween.Easing.Bounce.InOut(k), 'Bounce.Out' : k=> Tween.Easing.Bounce.Out(k), 'Circular.In' : k=> Tween.Easing.Circular.In(k), 'Circular.InOut' : k=> Tween.Easing.Circular.InOut(k), 'Circular.Out' : k=> Tween.Easing.Circular.Out(k), 'Cubic.In' : k=> Tween.Easing.Cubic.In(k), 'Cubic.InOut' : k=> Tween.Easing.Cubic.InOut(k), 'Cubic.Out' : k=> Tween.Easing.Cubic.Out(k), 'Elastic.In' : k=> Tween.Easing.Elastic.In(k), 'Elastic.InOut' : k=> Tween.Easing.Elastic.InOut(k), 'Elastic.Out' : k=> Tween.Easing.Elastic.Out(k), 'Exponential.In' : k=> Tween.Easing.Exponential.In(k), 'Exponential.InOut' : k=> Tween.Easing.Exponential.InOut(k), 'Exponential.Out' : k=> Tween.Easing.Exponential.Out(k), 'Linear.None' : k=> Tween.Easing.Linear.None(k), 'Quadratic.In' : k=> Tween.Easing.Quadratic.In(k), 'Quadratic.InOut' : k=> Tween.Easing.Quadratic.InOut(k), 'Quadratic.Out' : k=> Tween.Easing.Quadratic.Out(k), 'Quartic.In' : k=> Tween.Easing.Quartic.In(k), 'Quartic.InOut' : k=> Tween.Easing.Quartic.InOut(k), 'Quartic.Out' : k=> Tween.Easing.Quartic.Out(k), 'Quintic.In' : k=> Tween.Easing.Quintic.In(k), 'Quintic.InOut' : k=> Tween.Easing.Quintic.InOut(k), 'Quintic.Out' : k=> Tween.Easing.Quintic.Out(k), 'Sinusoidal.In' : k=> Tween.Easing.Sinusoidal.In(k), 'Sinusoidal.InOut' : k=> Tween.Easing.Sinusoidal.InOut(k), 'Sinusoidal.Out' : k=> Tween.Easing.Sinusoidal.Out(k), }; static ease(nm: string | undefined): (k: number)=> number { if (! nm) return k=> Tween.Easing.Linear.None(k); if (! (nm in CmnTween.hEase)) throw '異常なease指定です'; return CmnTween.hEase[nm]; } }