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

Commit 563f078

Browse files
committed
* timing(fix): some performance improved (as previus some commits made code slower)
1 parent 75633a6 commit 563f078

File tree

7 files changed

+38
-53
lines changed

7 files changed

+38
-53
lines changed

API.md

+1-13
Original file line numberDiff line numberDiff line change
@@ -45,7 +45,6 @@ Lightweight, effecient and modular ES6 version of tween.js
4545
* [.has(tween)](#TWEEN.has) ⇒ <code>Boolean</code>
4646
* [.remove(tween)](#TWEEN.remove)
4747
* [.update(time, [preserve])](#TWEEN.update)
48-
* [.getTime()](#TWEEN.getTime) ⇒ <code>number</code> \| <code>Time</code>
4948
* [.isRunning()](#TWEEN.isRunning) ⇒ <code>Boolean</code>
5049

5150
<a name="TWEEN.Plugins"></a>
@@ -87,7 +86,7 @@ Get browser/Node.js current time-stamp
8786
**Returns**: Normalised current time-stamp in milliseconds
8887
**Example**
8988
```js
90-
TWEEN.now()
89+
TWEEN.now
9190
```
9291
<a name="TWEEN.add"></a>
9392

@@ -203,17 +202,6 @@ Updates global tweens by given time
203202
```js
204203
TWEEN.update(500)
205204
```
206-
<a name="TWEEN.getTime"></a>
207-
208-
### TWEEN.getTime() ⇒ <code>number</code> \| <code>Time</code>
209-
Normalised tweens global time
210-
211-
**Kind**: static method of [<code>TWEEN</code>](#TWEEN)
212-
**Returns**: <code>number</code> \| <code>Time</code> - Normalised tweens global time
213-
**Example**
214-
```js
215-
TWEEN.getTime()
216-
```
217205
<a name="TWEEN.isRunning"></a>
218206

219207
### TWEEN.isRunning() ⇒ <code>Boolean</code>

package.json

+1-1
Original file line numberDiff line numberDiff line change
@@ -1,6 +1,6 @@
11
{
22
"name": "es6-tween",
3-
"version": "3.8.14",
3+
"version": "3.8.15",
44
"description": "ES6 implementation of amazing tween.js",
55
"browser": "full/Tween.min.js",
66
"cdn": "full/Tween.min.js",

ts/Event.ts

+3-3
Original file line numberDiff line numberDiff line change
@@ -23,7 +23,7 @@ class EventClass {
2323
*/
2424
public on(event: string, callback: Function) {
2525
if (!this._events[event]) {
26-
this._events[event] = []
26+
this._events[event] = [] as Function[]
2727
}
2828

2929
this._events[event].push(callback)
@@ -39,7 +39,7 @@ class EventClass {
3939
*/
4040
public once(event: string, callback: Function) {
4141
if (!this._events[event]) {
42-
this._events[event] = []
42+
this._events[event] = [] as Function[]
4343
}
4444

4545
const { _events } = this
@@ -65,7 +65,7 @@ class EventClass {
6565
}
6666

6767
if (callback) {
68-
this._events[event] = this._events[event].filter((cb) => cb !== callback)
68+
this._events[event] = this._events[event].filter((cb: Function): boolean => cb !== callback)
6969
} else {
7070
this._events[event].length = 0
7171
}

ts/Timeline.ts

+3-3
Original file line numberDiff line numberDiff line change
@@ -1,4 +1,4 @@
1-
import { add, now, remove, getTime } from './core'
1+
import { add, now, remove } from './core'
22
import PlaybackPosition from './PlaybackPosition'
33
import Tween, { EVENT_COMPLETE, EVENT_REPEAT, EVENT_REVERSE, EVENT_RS, EVENT_UPDATE } from './Tween'
44
import Selector from './selector'
@@ -41,7 +41,7 @@ class Timeline extends Tween {
4141
constructor(params: Object) {
4242
super()
4343
this._duration = 0
44-
this._startTime = now() - getTime()
44+
this._startTime = now()
4545
this._tweens = []
4646
this._elapsed = 0
4747
this._id = _id++
@@ -197,7 +197,7 @@ class Timeline extends Tween {
197197
}
198198

199199
public restart() {
200-
this._startTime += now() - getTime()
200+
this._startTime += now()
201201

202202
add(this)
203203

ts/Tween.ts

+9-10
Original file line numberDiff line numberDiff line change
@@ -4,8 +4,7 @@ import {
44
add,
55
now,
66
Plugins,
7-
remove,
8-
getTime
7+
remove
98
}
109
from './core'
1110
import Easing from './Easing'
@@ -207,7 +206,7 @@ class Tween extends EventClass {
207206
this._isPlaying = false
208207

209208
remove(this)
210-
this._pausedTime = now() - getTime()
209+
this._pausedTime = now()
211210

212211
return this.emit(EVENT_PAUSE, this.object)
213212
}
@@ -224,9 +223,9 @@ class Tween extends EventClass {
224223

225224
this._isPlaying = true
226225

227-
this._startTime += (now() - getTime()) - this._pausedTime
226+
this._startTime += now() - this._pausedTime
228227
add(this)
229-
this._pausedTime = now() - getTime()
228+
this._pausedTime = now()
230229

231230
return this.emit(EVENT_PLAY, this.object)
232231
}
@@ -239,7 +238,7 @@ class Tween extends EventClass {
239238
*/
240239
public restart(noDelay?: boolean) {
241240
this._repeat = this._r
242-
this._startTime = (now() - getTime()) + (noDelay ? 0 : this._delayTime)
241+
this._startTime = now() + (noDelay ? 0 : this._delayTime)
243242

244243
if (!this._isPlaying) {
245244
add(this)
@@ -256,7 +255,7 @@ class Tween extends EventClass {
256255
* @memberof Tween
257256
*/
258257
public seek(time: number, keepPlaying?: boolean) {
259-
this._startTime = (now() - getTime()) + Math.max(0, Math.min(
258+
this._startTime = now() + Math.max(0, Math.min(
260259
time, this._duration))
261260

262261
this.emit(EVENT_SEEK, time, this.object)
@@ -346,7 +345,7 @@ class Tween extends EventClass {
346345
* @memberof Tween
347346
*/
348347
public start(time?: number) {
349-
this._startTime = time !== undefined ? time : now() - getTime()
348+
this._startTime = time !== undefined ? time : now()
350349
this._startTime += this._delayTime
351350

352351
this._onStartCallbackFired = false
@@ -472,7 +471,7 @@ class Tween extends EventClass {
472471
} = this
473472

474473
this._isPlaying = true
475-
this._startTime = time !== undefined ? time : now() - getTime()
474+
this._startTime = time !== undefined ? time : now()
476475
this._startTime += _delayTime
477476
add(this)
478477

@@ -517,7 +516,7 @@ class Tween extends EventClass {
517516
let elapsed: number
518517
let currentEasing: Function
519518

520-
time = time !== undefined ? time : now() - getTime()
519+
time = time !== undefined ? time : now()
521520

522521
if (!_isPlaying || time < _startTime) {
523522
return true

ts/core.ts

+15-16
Original file line numberDiff line numberDiff line change
@@ -8,7 +8,7 @@ declare let process: any
88
* @return Normalised current time-stamp in milliseconds
99
* @memberof TWEEN
1010
* @example
11-
* TWEEN.now()
11+
* TWEEN.now
1212
*/
1313
const now: any = (function () {
1414
if (typeof (process) !== 'undefined' && process.hrtime !== undefined) {
@@ -66,10 +66,9 @@ const add = (tween: any): void => {
6666
_tweens.push(tween)
6767

6868
if (_autoPlay && !isStarted) {
69+
lastTime = now()
6970
_tick = _ticker(update)
7071
isStarted = true
71-
timeDiff += now() - lastTime
72-
lastTime = now()
7372
}
7473
}
7574

@@ -115,7 +114,7 @@ const removeAll = (): void => {
115114
* @example
116115
* TWEEN.get(tween)
117116
*/
118-
const get = (tween: any): Function|null => {
117+
const get = (tween: any): Function | null => {
119118
for (let i: number = 0; i < _tweens.length; i++) {
120119
if (tween === _tweens[i]) {
121120
return _tweens[i]
@@ -162,7 +161,7 @@ const update = (time: number, preserve?: boolean): boolean => {
162161
time = time !== undefined ? time : now()
163162
delta = time - lastTime
164163
if (delta > 150) {
165-
timeDiff += delta - frameMs
164+
timeDiff = delta - frameMs
166165
}
167166
lastTime = time
168167
if (_autoPlay && isStarted) {
@@ -175,23 +174,23 @@ const update = (time: number, preserve?: boolean): boolean => {
175174
return false
176175
}
177176

178-
let i = 0
177+
let i: number = 0
178+
let tween: any
179179
while (i < _tweens.length) {
180-
_tweens[i].update(time - timeDiff, preserve)
180+
tween = _tweens[i]
181+
if (timeDiff) {
182+
tween._startTime += timeDiff
183+
}
184+
tween.update(time, preserve)
181185
i++
182186
}
187+
if (timeDiff) {
188+
timeDiff = 0
189+
}
183190

184191
return true
185192
}
186193

187-
/**
188-
* Normalised tweens global time
189-
* @return {number|Time} Normalised tweens global time
190-
* @memberof TWEEN
191-
* @example TWEEN.getTime()
192-
*/
193-
const getTime = (): number => timeDiff;
194-
195194
/**
196195
* The state of ticker running
197196
* @return {Boolean} Status of running updates on all tweens
@@ -213,4 +212,4 @@ const isRunning = (): boolean => isStarted
213212
*/
214213
const Plugins: Object = {}
215214

216-
export { Plugins, get, getTime, has, getAll, removeAll, remove, add, now, update, autoPlay, onTick, isRunning }
215+
export { Plugins, get, has, getAll, removeAll, remove, add, now, update, autoPlay, onTick, isRunning }

ts/lite.ts

+6-7
Original file line numberDiff line numberDiff line change
@@ -1,8 +1,7 @@
11
import {
22
add,
33
now,
4-
remove,
5-
getTime
4+
remove
65
}
76
from './core'
87
import Easing from './Easing'
@@ -143,7 +142,7 @@ class Lite {
143142
this._isPlaying = false
144143

145144
remove(this)
146-
this._pausedTime = now() - getTime()
145+
this._pausedTime = now()
147146

148147
return this
149148
}
@@ -160,9 +159,9 @@ class Lite {
160159

161160
this._isPlaying = true
162161

163-
this._startTime += (now() - getTime()) - this._pausedTime
162+
this._startTime += now() - this._pausedTime
164163
add(this)
165-
this._pausedTime = now() - getTime()
164+
this._pausedTime = now()
166165

167166
return this
168167
}
@@ -201,7 +200,7 @@ class Lite {
201200
* @memberof Lite
202201
*/
203202
public start(time?: number) {
204-
this._startTime = time !== undefined ? time : now() - getTime()
203+
this._startTime = time !== undefined ? time : now()
205204
this._startTime += this._delayTime
206205

207206
const {
@@ -436,7 +435,7 @@ class Lite {
436435
let value: number
437436
let property: string
438437

439-
time = time !== undefined ? time : now() - getTime()
438+
time = time !== undefined ? time : now()
440439

441440
if (!_isPlaying || time < _startTime) {
442441
return true

0 commit comments

Comments
 (0)