mapbox-gl
Version:
A WebGL interactive maps library
32 lines (26 loc) • 706 B
JavaScript
class AnimationLoop {
constructor() {
this.n = 0;
this.times = [];
}
// Are all animations done?
stopped() {
this.times = this.times.filter((t) => {
return t.time >= (new Date()).getTime();
});
return !this.times.length;
}
// Add a new animation that will run t milliseconds
// Returns an id that can be used to cancel it layer
set(t) {
this.times.push({ id: this.n, time: t + (new Date()).getTime() });
return this.n++;
}
// Cancel an animation
cancel(n) {
this.times = this.times.filter((t) => {
return t.id !== n;
});
}
}
module.exports = AnimationLoop;