逐步完成前后端服务器
This commit is contained in:
147
frontend/node_modules/zrender/lib/animation/Animation.js
generated
vendored
Normal file
147
frontend/node_modules/zrender/lib/animation/Animation.js
generated
vendored
Normal file
@ -0,0 +1,147 @@
|
||||
import { __extends } from "tslib";
|
||||
import Eventful from '../core/Eventful.js';
|
||||
import requestAnimationFrame from './requestAnimationFrame.js';
|
||||
import Animator from './Animator.js';
|
||||
export function getTime() {
|
||||
return new Date().getTime();
|
||||
}
|
||||
var Animation = (function (_super) {
|
||||
__extends(Animation, _super);
|
||||
function Animation(opts) {
|
||||
var _this = _super.call(this) || this;
|
||||
_this._running = false;
|
||||
_this._time = 0;
|
||||
_this._pausedTime = 0;
|
||||
_this._pauseStart = 0;
|
||||
_this._paused = false;
|
||||
opts = opts || {};
|
||||
_this.stage = opts.stage || {};
|
||||
return _this;
|
||||
}
|
||||
Animation.prototype.addClip = function (clip) {
|
||||
if (clip.animation) {
|
||||
this.removeClip(clip);
|
||||
}
|
||||
if (!this._head) {
|
||||
this._head = this._tail = clip;
|
||||
}
|
||||
else {
|
||||
this._tail.next = clip;
|
||||
clip.prev = this._tail;
|
||||
clip.next = null;
|
||||
this._tail = clip;
|
||||
}
|
||||
clip.animation = this;
|
||||
};
|
||||
Animation.prototype.addAnimator = function (animator) {
|
||||
animator.animation = this;
|
||||
var clip = animator.getClip();
|
||||
if (clip) {
|
||||
this.addClip(clip);
|
||||
}
|
||||
};
|
||||
Animation.prototype.removeClip = function (clip) {
|
||||
if (!clip.animation) {
|
||||
return;
|
||||
}
|
||||
var prev = clip.prev;
|
||||
var next = clip.next;
|
||||
if (prev) {
|
||||
prev.next = next;
|
||||
}
|
||||
else {
|
||||
this._head = next;
|
||||
}
|
||||
if (next) {
|
||||
next.prev = prev;
|
||||
}
|
||||
else {
|
||||
this._tail = prev;
|
||||
}
|
||||
clip.next = clip.prev = clip.animation = null;
|
||||
};
|
||||
Animation.prototype.removeAnimator = function (animator) {
|
||||
var clip = animator.getClip();
|
||||
if (clip) {
|
||||
this.removeClip(clip);
|
||||
}
|
||||
animator.animation = null;
|
||||
};
|
||||
Animation.prototype.update = function (notTriggerFrameAndStageUpdate) {
|
||||
var time = getTime() - this._pausedTime;
|
||||
var delta = time - this._time;
|
||||
var clip = this._head;
|
||||
while (clip) {
|
||||
var nextClip = clip.next;
|
||||
var finished = clip.step(time, delta);
|
||||
if (finished) {
|
||||
clip.ondestroy();
|
||||
this.removeClip(clip);
|
||||
clip = nextClip;
|
||||
}
|
||||
else {
|
||||
clip = nextClip;
|
||||
}
|
||||
}
|
||||
this._time = time;
|
||||
if (!notTriggerFrameAndStageUpdate) {
|
||||
this.trigger('frame', delta);
|
||||
this.stage.update && this.stage.update();
|
||||
}
|
||||
};
|
||||
Animation.prototype._startLoop = function () {
|
||||
var self = this;
|
||||
this._running = true;
|
||||
function step() {
|
||||
if (self._running) {
|
||||
requestAnimationFrame(step);
|
||||
!self._paused && self.update();
|
||||
}
|
||||
}
|
||||
requestAnimationFrame(step);
|
||||
};
|
||||
Animation.prototype.start = function () {
|
||||
if (this._running) {
|
||||
return;
|
||||
}
|
||||
this._time = getTime();
|
||||
this._pausedTime = 0;
|
||||
this._startLoop();
|
||||
};
|
||||
Animation.prototype.stop = function () {
|
||||
this._running = false;
|
||||
};
|
||||
Animation.prototype.pause = function () {
|
||||
if (!this._paused) {
|
||||
this._pauseStart = getTime();
|
||||
this._paused = true;
|
||||
}
|
||||
};
|
||||
Animation.prototype.resume = function () {
|
||||
if (this._paused) {
|
||||
this._pausedTime += getTime() - this._pauseStart;
|
||||
this._paused = false;
|
||||
}
|
||||
};
|
||||
Animation.prototype.clear = function () {
|
||||
var clip = this._head;
|
||||
while (clip) {
|
||||
var nextClip = clip.next;
|
||||
clip.prev = clip.next = clip.animation = null;
|
||||
clip = nextClip;
|
||||
}
|
||||
this._head = this._tail = null;
|
||||
};
|
||||
Animation.prototype.isFinished = function () {
|
||||
return this._head == null;
|
||||
};
|
||||
Animation.prototype.animate = function (target, options) {
|
||||
options = options || {};
|
||||
this.start();
|
||||
var animator = new Animator(target, options.loop);
|
||||
this.addAnimator(animator);
|
||||
return animator;
|
||||
};
|
||||
return Animation;
|
||||
}(Eventful));
|
||||
export default Animation;
|
Reference in New Issue
Block a user