mirror of
https://github.com/konvajs/konva.git
synced 2025-06-28 08:40:13 +08:00
Merge pull request #1574 from IcetCode/fix/type-improve
fix: type improve
This commit is contained in:
commit
a8959e1b40
@ -3,7 +3,7 @@ import { Layer } from './Layer';
|
|||||||
import { IFrame, AnimationFn } from './types';
|
import { IFrame, AnimationFn } from './types';
|
||||||
import { Util } from './Util';
|
import { Util } from './Util';
|
||||||
|
|
||||||
var now = (function (): () => number {
|
const now = (function (): () => number {
|
||||||
if (glob.performance && glob.performance.now) {
|
if (glob.performance && glob.performance.now) {
|
||||||
return function () {
|
return function () {
|
||||||
return glob.performance.now();
|
return glob.performance.now();
|
||||||
@ -61,21 +61,12 @@ export class Animation {
|
|||||||
* @param {Konva.Layer|Array} [layers] layer(s) to be redrawn. Can be a layer, an array of layers, or null. Not specifying a node will result in no redraw.
|
* @param {Konva.Layer|Array} [layers] layer(s) to be redrawn. Can be a layer, an array of layers, or null. Not specifying a node will result in no redraw.
|
||||||
* @return {Konva.Animation} this
|
* @return {Konva.Animation} this
|
||||||
*/
|
*/
|
||||||
setLayers(layers) {
|
setLayers(layers:null | Layer | Layer[]) {
|
||||||
var lays = [];
|
let lays: Layer[] = [];
|
||||||
// if passing in no layers
|
// if passing in no layers
|
||||||
if (!layers) {
|
if (layers) {
|
||||||
lays = [];
|
lays = Array.isArray(layers)? layers : [layers]
|
||||||
} else if (layers.length > 0) {
|
|
||||||
// if passing in an array of Layers
|
|
||||||
// NOTE: layers could be an array. for simplicity, I'm just inspecting
|
|
||||||
// the length property to check for both cases
|
|
||||||
lays = layers;
|
|
||||||
} else {
|
|
||||||
// if passing in a Layer
|
|
||||||
lays = [layers];
|
|
||||||
}
|
}
|
||||||
|
|
||||||
this.layers = lays;
|
this.layers = lays;
|
||||||
return this;
|
return this;
|
||||||
}
|
}
|
||||||
@ -95,13 +86,12 @@ export class Animation {
|
|||||||
* @param {Konva.Layer} layer to add
|
* @param {Konva.Layer} layer to add
|
||||||
* @return {Bool} true if layer is added to animation, otherwise false
|
* @return {Bool} true if layer is added to animation, otherwise false
|
||||||
*/
|
*/
|
||||||
addLayer(layer) {
|
addLayer(layer: Layer) {
|
||||||
var layers = this.layers,
|
const layers = this.layers
|
||||||
len = layers.length,
|
const len = layers.length
|
||||||
n;
|
|
||||||
|
|
||||||
// don't add the layer if it already exists
|
// don't add the layer if it already exists
|
||||||
for (n = 0; n < len; n++) {
|
for (let n = 0; n < len; n++) {
|
||||||
if (layers[n]._id === layer._id) {
|
if (layers[n]._id === layer._id) {
|
||||||
return false;
|
return false;
|
||||||
}
|
}
|
||||||
@ -117,12 +107,11 @@ export class Animation {
|
|||||||
* @return {Bool} is animation running?
|
* @return {Bool} is animation running?
|
||||||
*/
|
*/
|
||||||
isRunning() {
|
isRunning() {
|
||||||
var a = Animation,
|
const a = Animation
|
||||||
animations = a.animations,
|
const animations = a.animations
|
||||||
len = animations.length,
|
const len = animations.length
|
||||||
n;
|
|
||||||
|
|
||||||
for (n = 0; n < len; n++) {
|
for (let n = 0; n < len; n++) {
|
||||||
if (animations[n].id === this.id) {
|
if (animations[n].id === this.id) {
|
||||||
return true;
|
return true;
|
||||||
}
|
}
|
||||||
@ -152,7 +141,7 @@ export class Animation {
|
|||||||
Animation._removeAnimation(this);
|
Animation._removeAnimation(this);
|
||||||
return this;
|
return this;
|
||||||
}
|
}
|
||||||
_updateFrameObject(time) {
|
_updateFrameObject(time: number) {
|
||||||
this.frame.timeDiff = time - this.frame.lastTime;
|
this.frame.timeDiff = time - this.frame.lastTime;
|
||||||
this.frame.lastTime = time;
|
this.frame.lastTime = time;
|
||||||
this.frame.time += this.frame.timeDiff;
|
this.frame.time += this.frame.timeDiff;
|
||||||
@ -168,12 +157,11 @@ export class Animation {
|
|||||||
this._handleAnimation();
|
this._handleAnimation();
|
||||||
}
|
}
|
||||||
static _removeAnimation(anim) {
|
static _removeAnimation(anim) {
|
||||||
var id = anim.id,
|
const id = anim.id
|
||||||
animations = this.animations,
|
const animations = this.animations
|
||||||
len = animations.length,
|
const len = animations.length
|
||||||
n;
|
|
||||||
|
|
||||||
for (n = 0; n < len; n++) {
|
for (let n = 0; n < len; n++) {
|
||||||
if (animations[n].id === id) {
|
if (animations[n].id === id) {
|
||||||
this.animations.splice(n, 1);
|
this.animations.splice(n, 1);
|
||||||
break;
|
break;
|
||||||
@ -182,17 +170,8 @@ export class Animation {
|
|||||||
}
|
}
|
||||||
|
|
||||||
static _runFrames() {
|
static _runFrames() {
|
||||||
var layerHash = {},
|
const layerHash = {}
|
||||||
animations = this.animations,
|
const animations = this.animations
|
||||||
anim,
|
|
||||||
layers,
|
|
||||||
func,
|
|
||||||
n,
|
|
||||||
i,
|
|
||||||
layersLen,
|
|
||||||
layer,
|
|
||||||
key,
|
|
||||||
needRedraw;
|
|
||||||
/*
|
/*
|
||||||
* loop through all animations and execute animation
|
* loop through all animations and execute animation
|
||||||
* function. if the animation object has specified node,
|
* function. if the animation object has specified node,
|
||||||
@ -205,15 +184,16 @@ export class Animation {
|
|||||||
* the for loop is running, causing a JS error
|
* the for loop is running, causing a JS error
|
||||||
*/
|
*/
|
||||||
|
|
||||||
for (n = 0; n < animations.length; n++) {
|
for (let n = 0; n < animations.length; n++) {
|
||||||
anim = animations[n];
|
const anim = animations[n];
|
||||||
layers = anim.layers;
|
const layers = anim.layers;
|
||||||
func = anim.func;
|
const func = anim.func;
|
||||||
|
|
||||||
anim._updateFrameObject(now());
|
anim._updateFrameObject(now());
|
||||||
layersLen = layers.length;
|
const layersLen = layers.length;
|
||||||
|
|
||||||
// if animation object has a function, execute it
|
// if animation object has a function, execute it
|
||||||
|
let needRedraw
|
||||||
if (func) {
|
if (func) {
|
||||||
// allow anim bypassing drawing
|
// allow anim bypassing drawing
|
||||||
needRedraw = func.call(anim, anim.frame) !== false;
|
needRedraw = func.call(anim, anim.frame) !== false;
|
||||||
@ -223,8 +203,8 @@ export class Animation {
|
|||||||
if (!needRedraw) {
|
if (!needRedraw) {
|
||||||
continue;
|
continue;
|
||||||
}
|
}
|
||||||
for (i = 0; i < layersLen; i++) {
|
for (let i = 0; i < layersLen; i++) {
|
||||||
layer = layers[i];
|
const layer = layers[i];
|
||||||
|
|
||||||
if (layer._id !== undefined) {
|
if (layer._id !== undefined) {
|
||||||
layerHash[layer._id] = layer;
|
layerHash[layer._id] = layer;
|
||||||
@ -232,7 +212,7 @@ export class Animation {
|
|||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
for (key in layerHash) {
|
for (let key in layerHash) {
|
||||||
if (!layerHash.hasOwnProperty(key)) {
|
if (!layerHash.hasOwnProperty(key)) {
|
||||||
continue;
|
continue;
|
||||||
}
|
}
|
||||||
@ -240,7 +220,7 @@ export class Animation {
|
|||||||
}
|
}
|
||||||
}
|
}
|
||||||
static _animationLoop() {
|
static _animationLoop() {
|
||||||
var Anim = Animation;
|
const Anim = Animation;
|
||||||
if (Anim.animations.length) {
|
if (Anim.animations.length) {
|
||||||
Anim._runFrames();
|
Anim._runFrames();
|
||||||
Util.requestAnimFrame(Anim._animationLoop);
|
Util.requestAnimFrame(Anim._animationLoop);
|
||||||
|
Loading…
Reference in New Issue
Block a user