Skip to content

Commit 6bb4768

Browse files
committed
Move time forward and backward using timeline scale.
1 parent 7e50f6d commit 6bb4768

File tree

3 files changed

+29
-4
lines changed

3 files changed

+29
-4
lines changed

index.html

+2-2
Original file line numberDiff line numberDiff line change
@@ -125,11 +125,11 @@
125125
break;
126126
case 37:
127127
event.preventDefault();
128-
editor.setTime( editor.player.currentTime - editor.player.playbackRate );
128+
editor.signals.timeBackward.dispatch();
129129
break;
130130
case 39:
131131
event.preventDefault();
132-
editor.setTime( editor.player.currentTime + editor.player.playbackRate );
132+
editor.signals.timeForward.dispatch();
133133
break;
134134
case 38:
135135
event.preventDefault();

js/Editor.js

+4
Original file line numberDiff line numberDiff line change
@@ -56,7 +56,11 @@ function Editor() {
5656

5757
playingChanged: new Signal(),
5858
playbackRateChanged: new Signal(),
59+
60+
timeForward: new Signal(),
61+
timeBackward: new Signal(),
5962
timeChanged: new Signal(),
63+
6064
timelineScaled: new Signal(),
6165
windowResized: new Signal(),
6266

js/Timeline.js

+23-2
Original file line numberDiff line numberDiff line change
@@ -39,14 +39,14 @@ function Timeline( editor ) {
3939
const mouseX = event.clientX - rect.left;
4040

4141
// Calculate the time at the mouse position
42-
const mouseTime = (scroller.scrollLeft + mouseX) / scale;
42+
const mouseTime = ( scroller.scrollLeft + mouseX ) / scale;
4343

4444
// Update scale
4545
scale = Math.max( 2, scale - ( event.deltaY / 10 ) );
4646
signals.timelineScaled.dispatch( scale );
4747

4848
// Adjust scroll to keep the time under mouse position
49-
scroller.scrollLeft = (mouseTime * scale) - mouseX;
49+
scroller.scrollLeft = ( mouseTime * scale ) - mouseX;
5050
}
5151
} );
5252
container.add( timeline );
@@ -260,17 +260,38 @@ function Timeline( editor ) {
260260

261261
} );
262262

263+
signals.timeBackward.add( function () {
264+
265+
const player = editor.player;
266+
const time = player.currentTime - ( 32 / scale );
267+
268+
editor.setTime( time );
269+
270+
} );
271+
272+
signals.timeForward.add( function () {
273+
274+
const player = editor.player;
275+
const time = player.currentTime + ( 32 / scale );
276+
277+
editor.setTime( time );
278+
279+
} );
280+
263281
signals.timeChanged.add( function () {
264282

265283
updateTimeMark();
266284

267285
} );
268286

269287
signals.timelineScaled.add( function ( value ) {
288+
270289
scale = value;
290+
271291
updateMarks();
272292
updateTimeMark();
273293
updateContainers();
294+
274295
} );
275296

276297
signals.windowResized.add( function () {

0 commit comments

Comments
 (0)