Skip to content
This repository was archived by the owner on Jun 23, 2023. It is now read-only.

Commit fed52ba

Browse files
committed
BREAKING CHANGE: Tween#chain deprecated. Use Timeline global method instead
1 parent 5e69593 commit fed52ba

File tree

6 files changed

+91
-273
lines changed

6 files changed

+91
-273
lines changed

package.json

Lines changed: 3 additions & 3 deletions
Original file line numberDiff line numberDiff line change
@@ -1,8 +1,8 @@
11
{
22
"standard": {
33
"ignore": [
4-
"/dist/",
5-
"/test/"
4+
"dist/",
5+
"test/"
66
]
77
},
88
"name": "es6-tween",
@@ -19,8 +19,8 @@
1919
"source": "rollup -c --sourcemap",
2020
"bundle": "npm run source && npm run build",
2121
"dev": "rollup -c -w --sourcemap",
22-
"test": "npm run test-unit && npm run lint",
2322
"test-unit": "nodeunit test/unit/nodeunitheadless.js",
23+
"test": "npm run test-unit && npm run fix && npm run lint",
2424
"fix": "standard --fix",
2525
"lint": "standard --verbose | snazzy",
2626
"semantic-release": "semantic-release pre && npm publish && semantic-release post --owner=sole --user=dalisoft"

src/Tween.js

Lines changed: 2 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -6,7 +6,7 @@ import './shim/raf'
66

77
import './shim/isArray'
88

9-
import { getAll, removeAll, remove, add, now, update, autoPlay, on, once, off, emit } from './dist/core'
9+
import { has, get, getAll, removeAll, remove, add, now, update, autoPlay, on, once, off, emit } from './dist/core'
1010

1111
import Easing from './dist/Easing'
1212

@@ -22,4 +22,4 @@ import Plugins from './dist/Plugins'
2222

2323
import { TweenInit } from './dist/Decorators'
2424

25-
export { TweenInit, getAll, removeAll, remove, add, now, update, autoPlay, on, once, off, emit, Tween, Easing, Interpolation, Composite, Timeline, Plugins }
25+
export { TweenInit, has, get, getAll, removeAll, remove, add, now, update, autoPlay, on, once, off, emit, Tween, Easing, Interpolation, Composite, Timeline, Plugins }

src/dist/Tween.js

Lines changed: 0 additions & 24 deletions
Original file line numberDiff line numberDiff line change
@@ -327,7 +327,6 @@ class Tween {
327327
remove(this);
328328
this._isPlaying = false;
329329

330-
this.stopChainedTweens();
331330
return this.emit('stop', object);
332331

333332
}
@@ -340,17 +339,6 @@ class Tween {
340339

341340
return this.update(_startTime + _duration);
342341

343-
}
344-
stopChainedTweens() {
345-
346-
let {
347-
_chainedTweens = []
348-
} = this;
349-
350-
_chainedTweens.map(item => item.stop());
351-
352-
return this;
353-
354342
}
355343
delay(amount) {
356344

@@ -401,13 +389,6 @@ class Tween {
401389

402390
return this;
403391

404-
}
405-
chain(...args) {
406-
407-
this._chainedTweens = args;
408-
409-
return this;
410-
411392
}
412393
get(time) {
413394
this.update(time);
@@ -417,7 +398,6 @@ class Tween {
417398

418399
let {
419400
_onStartCallbackFired,
420-
_chainedTweens,
421401
_easingFunction,
422402
_interpolationFunction,
423403
_repeat,
@@ -541,10 +521,6 @@ class Tween {
541521

542522
this.emit('complete', object);
543523

544-
if (_chainedTweens) {
545-
_chainedTweens.map(tween => tween.start(_startTime + _duration));
546-
}
547-
548524
return false;
549525

550526
}

src/dist/core.js

Lines changed: 78 additions & 37 deletions
Original file line numberDiff line numberDiff line change
@@ -8,22 +8,11 @@ let _events = {};
88
let root = typeof (window) !== "undefined" ? window : typeof (global) !== "undefined" ? global : {};
99
let _nextId = 0;
1010

11-
const nextId = () => {
12-
_nextId++;
13-
return _nextId;
14-
}
15-
16-
const getAll = () => {
17-
return _tweens;
18-
}
19-
20-
const autoPlay = (state) => {
21-
_autoPlay = state;
22-
}
23-
24-
const removeAll = () => {
25-
_tweens = {}
26-
}
11+
Object.defineProperty(_tweens, "length", {
12+
enumerable: false,
13+
writable: true,
14+
value: 0
15+
});
2716

2817
const emit = function(name, a, b, c, d, e) {
2918
let eventFn = _events[name];
@@ -36,6 +25,23 @@ const emit = function(name, a, b, c, d, e) {
3625
}
3726
}
3827

28+
const on = (ev, fn) => {
29+
if (_events[ev] === undefined) {
30+
_events[ev] = [];
31+
}
32+
_events[ev].push(fn);
33+
}
34+
35+
const once = (ev, fn) => {
36+
if (_events[ev] === undefined) {
37+
_events[ev] = [];
38+
}
39+
on(ev, (...args) => {
40+
fn(...args);
41+
off(ev);
42+
});
43+
}
44+
3945
const off = (ev, fn) => {
4046
if (ev === undefined || _events[ev] === undefined) {
4147
return;
@@ -54,9 +60,10 @@ const off = (ev, fn) => {
5460
}
5561
}
5662

57-
const add = (tween) => {
63+
const add = tween => {
5864
let { id } = tween;
5965
_tweens[id] = tween;
66+
_tweens.length++;
6067

6168
if (_autoPlay && !isStarted) {
6269
update();
@@ -67,28 +74,57 @@ const add = (tween) => {
6774

6875
}
6976

70-
const on = (ev, fn) => {
71-
if (_events[ev] === undefined) {
72-
_events[ev] = [];
73-
}
74-
_events[ev].push(fn);
77+
const nextId = () => {
78+
let id = _nextId;
79+
_nextId++;
80+
return id;
7581
}
7682

77-
const once = (ev, fn) => {
78-
if (_events[ev] === undefined) {
79-
_events[ev] = [];
80-
}
81-
on(ev, (...args) => {
82-
fn(...args);
83-
off(ev);
83+
const getAll = () => {
84+
return _tweens;
85+
}
86+
87+
const autoPlay = (state) => {
88+
_autoPlay = state;
89+
}
90+
91+
const removeAll = () => {
92+
_tweens = {}
93+
94+
Object.defineProperty(_tweens, "length", {
95+
enumerable: false,
96+
writable: true,
97+
value: 0
8498
});
8599
}
86100

87-
const remove = (tween) => {
101+
const get = tween => {
102+
103+
for ( let searchTween in _tweens ) {
104+
105+
if (tween.id === +searchTween) {
106+
107+
return _tweens[+searchTween];
108+
109+
}
110+
111+
}
112+
113+
return null;
114+
115+
}
116+
117+
const has = tween => {
118+
119+
return get(tween) !== null;
120+
121+
}
122+
123+
const remove = tween => {
88124
for ( let searchTween in _tweens ) {
89-
if (tween.id === searchTween.id) {
90-
_tweens[searchTween] = null;
91-
delete _tweens[searchTween];
125+
if (tween.id === +searchTween) {
126+
delete _tweens[+searchTween];
127+
_tweens.length--;
92128
}
93129
}
94130
}
@@ -142,8 +178,8 @@ const update = (time, preserve) => {
142178
if (_tweens[i].update(time) || preserve) {
143179
i++;
144180
} else {
145-
_tweens[i] = null;
146-
delete _tweens[i];
181+
delete _tweens[+i];
182+
_tweens.length--;
147183
}
148184

149185
}
@@ -162,11 +198,16 @@ if (root.document) {
162198
timePause = now();
163199
} else {
164200
timeDiff = now() - timePause;
165-
_tweens.map(tween => tween._startTime += timeDiff)
201+
202+
for ( let tween in _tweens ) {
203+
204+
tween._startTime += timeDiff
205+
206+
}
166207

167208
}
168209
return true;
169210
})
170211
}
171212

172-
export { nextId, getAll, removeAll, remove, add, now, update, autoPlay, on, once, off, emit };
213+
export { get, has, nextId, getAll, removeAll, remove, add, now, update, autoPlay, on, once, off, emit };

test/jshintrc

Lines changed: 0 additions & 8 deletions
This file was deleted.

0 commit comments

Comments
 (0)