cione-comp-lib
Version:
`$ yarn add cione-comp-lib` 或者 `$ npm i cione-comp-lib -S`
209 lines (208 loc) • 10.7 kB
JavaScript
var _Group = function() {
this._tweens = {}, this._tweensAddedDuringUpdate = {};
};
_Group.prototype = { getAll: function() {
return Object.keys(this._tweens).map(function(t) {
return this._tweens[t];
}.bind(this));
}, removeAll: function() {
this._tweens = {};
}, add: function(t) {
this._tweens[t.getId()] = t, this._tweensAddedDuringUpdate[t.getId()] = t;
}, remove: function(t) {
delete this._tweens[t.getId()], delete this._tweensAddedDuringUpdate[t.getId()];
}, update: function(t, n) {
var e = Object.keys(this._tweens);
if (0 === e.length)
return false;
for (t = void 0 !== t ? t : TWEEN.now(); 0 < e.length; ) {
this._tweensAddedDuringUpdate = {};
for (var i = 0; i < e.length; i++) {
var r = this._tweens[e[i]];
r && false === r.update(t) && (r._isPlaying = false, n || delete this._tweens[e[i]]);
}
e = Object.keys(this._tweensAddedDuringUpdate);
}
return true;
} };
var TWEEN = new _Group();
TWEEN.Group = _Group, TWEEN._nextId = 0, TWEEN.nextId = function() {
return TWEEN._nextId++;
}, "undefined" == typeof self && "undefined" != typeof process && process.hrtime ? TWEEN.now = function() {
var t = process.hrtime();
return 1e3 * t[0] + t[1] / 1e6;
} : "undefined" != typeof self && void 0 !== self.performance && void 0 !== self.performance.now ? TWEEN.now = self.performance.now.bind(self.performance) : void 0 !== Date.now ? TWEEN.now = Date.now : TWEEN.now = function() {
return new Date().getTime();
}, TWEEN.Tween = function(t, n) {
this._object = t, this._valuesStart = {}, this._valuesEnd = {}, this._valuesStartRepeat = {}, this._duration = 1e3, this._repeat = 0, this._repeatDelayTime = void 0, this._yoyo = false, this._isPlaying = false, this._reversed = false, this._delayTime = 0, this._startTime = null, this._easingFunction = TWEEN.Easing.Linear.None, this._interpolationFunction = TWEEN.Interpolation.Linear, this._chainedTweens = [], this._onStartCallback = null, this._onStartCallbackFired = false, this._onUpdateCallback = null, this._onCompleteCallback = null, this._onStopCallback = null, this._group = n || TWEEN, this._id = TWEEN.nextId();
}, TWEEN.Tween.prototype = { getId: function() {
return this._id;
}, isPlaying: function() {
return this._isPlaying;
}, to: function(t, n) {
return this._valuesEnd = Object.create(t), void 0 !== n && (this._duration = n), this;
}, duration: function(t) {
return this._duration = t, this;
}, start: function(t) {
for (var n in this._group.add(this), this._isPlaying = true, this._onStartCallbackFired = false, this._startTime = void 0 !== t ? "string" == typeof t ? TWEEN.now() + parseFloat(t) : t : TWEEN.now(), this._startTime += this._delayTime, this._valuesEnd) {
if (this._valuesEnd[n] instanceof Array) {
if (0 === this._valuesEnd[n].length)
continue;
this._valuesEnd[n] = [this._object[n]].concat(this._valuesEnd[n]);
}
void 0 !== this._object[n] && (this._valuesStart[n] = this._object[n], this._valuesStart[n] instanceof Array == false && (this._valuesStart[n] *= 1), this._valuesStartRepeat[n] = this._valuesStart[n] || 0);
}
return this;
}, stop: function() {
return this._isPlaying && (this._group.remove(this), this._isPlaying = false, null !== this._onStopCallback && this._onStopCallback(this._object), this.stopChainedTweens()), this;
}, end: function() {
return this.update(1 / 0), this;
}, stopChainedTweens: function() {
for (var t = 0, n = this._chainedTweens.length; t < n; t++)
this._chainedTweens[t].stop();
}, group: function(t) {
return this._group = t, this;
}, delay: function(t) {
return this._delayTime = t, this;
}, repeat: function(t) {
return this._repeat = t, this;
}, repeatDelay: function(t) {
return this._repeatDelayTime = t, this;
}, yoyo: function(t) {
return this._yoyo = t, this;
}, easing: function(t) {
return this._easingFunction = t, this;
}, interpolation: function(t) {
return this._interpolationFunction = t, this;
}, chain: function() {
return this._chainedTweens = arguments, this;
}, onStart: function(t) {
return this._onStartCallback = t, this;
}, onUpdate: function(t) {
return this._onUpdateCallback = t, this;
}, onComplete: function(t) {
return this._onCompleteCallback = t, this;
}, onStop: function(t) {
return this._onStopCallback = t, this;
}, update: function(t) {
var n, e, i;
if (t < this._startTime)
return true;
for (n in false === this._onStartCallbackFired && (null !== this._onStartCallback && this._onStartCallback(this._object), this._onStartCallbackFired = true), e = (t - this._startTime) / this._duration, e = 0 === this._duration || 1 < e ? 1 : e, i = this._easingFunction(e), this._valuesEnd)
if (void 0 !== this._valuesStart[n]) {
var r = this._valuesStart[n] || 0, a = this._valuesEnd[n];
a instanceof Array ? this._object[n] = this._interpolationFunction(a, i) : ("string" == typeof a && (a = "+" === a.charAt(0) || "-" === a.charAt(0) ? r + parseFloat(a) : parseFloat(a)), "number" == typeof a && (this._object[n] = r + (a - r) * i));
}
if (null !== this._onUpdateCallback && this._onUpdateCallback(this._object), 1 !== e)
return true;
if (0 < this._repeat) {
for (n in isFinite(this._repeat) && this._repeat--, this._valuesStartRepeat) {
if ("string" == typeof this._valuesEnd[n] && (this._valuesStartRepeat[n] = this._valuesStartRepeat[n] + parseFloat(this._valuesEnd[n])), this._yoyo) {
var s = this._valuesStartRepeat[n];
this._valuesStartRepeat[n] = this._valuesEnd[n], this._valuesEnd[n] = s;
}
this._valuesStart[n] = this._valuesStartRepeat[n];
}
return this._yoyo && (this._reversed = !this._reversed), void 0 !== this._repeatDelayTime ? this._startTime = t + this._repeatDelayTime : this._startTime = t + this._delayTime, true;
}
null !== this._onCompleteCallback && this._onCompleteCallback(this._object);
for (var o = 0, u = this._chainedTweens.length; o < u; o++)
this._chainedTweens[o].start(this._startTime + this._duration);
return false;
} }, TWEEN.Easing = { Linear: { None: function(t) {
return t;
} }, Quadratic: { In: function(t) {
return t * t;
}, Out: function(t) {
return t * (2 - t);
}, InOut: function(t) {
return (t *= 2) < 1 ? 0.5 * t * t : -0.5 * (--t * (t - 2) - 1);
} }, Cubic: { In: function(t) {
return t * t * t;
}, Out: function(t) {
return --t * t * t + 1;
}, InOut: function(t) {
return (t *= 2) < 1 ? 0.5 * t * t * t : 0.5 * ((t -= 2) * t * t + 2);
} }, Quartic: { In: function(t) {
return t * t * t * t;
}, Out: function(t) {
return 1 - --t * t * t * t;
}, InOut: function(t) {
return (t *= 2) < 1 ? 0.5 * t * t * t * t : -0.5 * ((t -= 2) * t * t * t - 2);
} }, Quintic: { In: function(t) {
return t * t * t * t * t;
}, Out: function(t) {
return --t * t * t * t * t + 1;
}, InOut: function(t) {
return (t *= 2) < 1 ? 0.5 * t * t * t * t * t : 0.5 * ((t -= 2) * t * t * t * t + 2);
} }, Sinusoidal: { In: function(t) {
return 1 - Math.cos(t * Math.PI / 2);
}, Out: function(t) {
return Math.sin(t * Math.PI / 2);
}, InOut: function(t) {
return 0.5 * (1 - Math.cos(Math.PI * t));
} }, Exponential: { In: function(t) {
return 0 === t ? 0 : Math.pow(1024, t - 1);
}, Out: function(t) {
return 1 === t ? 1 : 1 - Math.pow(2, -10 * t);
}, InOut: function(t) {
return 0 === t ? 0 : 1 === t ? 1 : (t *= 2) < 1 ? 0.5 * Math.pow(1024, t - 1) : 0.5 * (2 - Math.pow(2, -10 * (t - 1)));
} }, Circular: { In: function(t) {
return 1 - Math.sqrt(1 - t * t);
}, Out: function(t) {
return Math.sqrt(1 - --t * t);
}, InOut: function(t) {
return (t *= 2) < 1 ? -0.5 * (Math.sqrt(1 - t * t) - 1) : 0.5 * (Math.sqrt(1 - (t -= 2) * t) + 1);
} }, Elastic: { In: function(t) {
return 0 === t ? 0 : 1 === t ? 1 : -Math.pow(2, 10 * (t - 1)) * Math.sin(5 * (t - 1.1) * Math.PI);
}, Out: function(t) {
return 0 === t ? 0 : 1 === t ? 1 : Math.pow(2, -10 * t) * Math.sin(5 * (t - 0.1) * Math.PI) + 1;
}, InOut: function(t) {
return 0 === t ? 0 : 1 === t ? 1 : (t *= 2) < 1 ? -0.5 * Math.pow(2, 10 * (t - 1)) * Math.sin(5 * (t - 1.1) * Math.PI) : 0.5 * Math.pow(2, -10 * (t - 1)) * Math.sin(5 * (t - 1.1) * Math.PI) + 1;
} }, Back: { In: function(t) {
return t * t * (2.70158 * t - 1.70158);
}, Out: function(t) {
return --t * t * (2.70158 * t + 1.70158) + 1;
}, InOut: function(t) {
var n = 2.5949095;
return (t *= 2) < 1 ? t * t * ((1 + n) * t - n) * 0.5 : 0.5 * ((t -= 2) * t * ((1 + n) * t + n) + 2);
} }, Bounce: { In: function(t) {
return 1 - TWEEN.Easing.Bounce.Out(1 - t);
}, Out: function(t) {
return t < 1 / 2.75 ? 7.5625 * t * t : t < 2 / 2.75 ? 7.5625 * (t -= 1.5 / 2.75) * t + 0.75 : t < 2.5 / 2.75 ? 7.5625 * (t -= 2.25 / 2.75) * t + 0.9375 : 7.5625 * (t -= 2.625 / 2.75) * t + 0.984375;
}, InOut: function(t) {
return t < 0.5 ? 0.5 * TWEEN.Easing.Bounce.In(2 * t) : 0.5 * TWEEN.Easing.Bounce.Out(2 * t - 1) + 0.5;
} } }, TWEEN.Interpolation = { Linear: function(t, n) {
var e = t.length - 1, i = e * n, r = Math.floor(i), a = TWEEN.Interpolation.Utils.Linear;
return n < 0 ? a(t[0], t[1], i) : 1 < n ? a(t[e], t[e - 1], e - i) : a(t[r], t[e < r + 1 ? e : r + 1], i - r);
}, Bezier: function(t, n) {
for (var e = 0, i = t.length - 1, r = Math.pow, a = TWEEN.Interpolation.Utils.Bernstein, s = 0; s <= i; s++)
e += r(1 - n, i - s) * r(n, s) * t[s] * a(i, s);
return e;
}, CatmullRom: function(t, n) {
var e = t.length - 1, i = e * n, r = Math.floor(i), a = TWEEN.Interpolation.Utils.CatmullRom;
return t[0] === t[e] ? (n < 0 && (r = Math.floor(i = e * (1 + n))), a(t[(r - 1 + e) % e], t[r], t[(r + 1) % e], t[(r + 2) % e], i - r)) : n < 0 ? t[0] - (a(t[0], t[0], t[1], t[1], -i) - t[0]) : 1 < n ? t[e] - (a(t[e], t[e], t[e - 1], t[e - 1], i - e) - t[e]) : a(t[r ? r - 1 : 0], t[r], t[e < r + 1 ? e : r + 1], t[e < r + 2 ? e : r + 2], i - r);
}, Utils: { Linear: function(t, n, e) {
return (n - t) * e + t;
}, Bernstein: function(t, n) {
var e = TWEEN.Interpolation.Utils.Factorial;
return e(t) / e(n) / e(t - n);
}, Factorial: function() {
var i = [1];
return function(t) {
var n = 1;
if (i[t])
return i[t];
for (var e = t; 1 < e; e--)
n *= e;
return i[t] = n;
};
}(), CatmullRom: function(t, n, e, i, r) {
var a = 0.5 * (e - t), s = 0.5 * (i - n), o = r * r;
return (2 * n - 2 * e + a + s) * (r * o) + (-3 * n + 3 * e - 2 * a - s) * o + a * r + n;
} } }, function(t) {
"function" == typeof define && define.amd ? define([], function() {
return TWEEN;
}) : "undefined" != typeof module && "object" == typeof exports ? module.exports = TWEEN : void 0 !== t && (t.TWEEN = TWEEN);
}(globalThis);
export { TWEEN };