File tree 3 files changed +29
-4
lines changed
3 files changed +29
-4
lines changed Original file line number Diff line number Diff line change 125
125
break ;
126
126
case 37 :
127
127
event . preventDefault ( ) ;
128
- editor . setTime ( editor . player . currentTime - editor . player . playbackRate ) ;
128
+ editor . signals . timeBackward . dispatch ( ) ;
129
129
break ;
130
130
case 39 :
131
131
event . preventDefault ( ) ;
132
- editor . setTime ( editor . player . currentTime + editor . player . playbackRate ) ;
132
+ editor . signals . timeForward . dispatch ( ) ;
133
133
break ;
134
134
case 38 :
135
135
event . preventDefault ( ) ;
Original file line number Diff line number Diff line change @@ -56,7 +56,11 @@ function Editor() {
56
56
57
57
playingChanged : new Signal ( ) ,
58
58
playbackRateChanged : new Signal ( ) ,
59
+
60
+ timeForward : new Signal ( ) ,
61
+ timeBackward : new Signal ( ) ,
59
62
timeChanged : new Signal ( ) ,
63
+
60
64
timelineScaled : new Signal ( ) ,
61
65
windowResized : new Signal ( ) ,
62
66
Original file line number Diff line number Diff line change @@ -39,14 +39,14 @@ function Timeline( editor ) {
39
39
const mouseX = event . clientX - rect . left ;
40
40
41
41
// Calculate the time at the mouse position
42
- const mouseTime = ( scroller . scrollLeft + mouseX ) / scale ;
42
+ const mouseTime = ( scroller . scrollLeft + mouseX ) / scale ;
43
43
44
44
// Update scale
45
45
scale = Math . max ( 2 , scale - ( event . deltaY / 10 ) ) ;
46
46
signals . timelineScaled . dispatch ( scale ) ;
47
47
48
48
// Adjust scroll to keep the time under mouse position
49
- scroller . scrollLeft = ( mouseTime * scale ) - mouseX ;
49
+ scroller . scrollLeft = ( mouseTime * scale ) - mouseX ;
50
50
}
51
51
} ) ;
52
52
container . add ( timeline ) ;
@@ -260,17 +260,38 @@ function Timeline( editor ) {
260
260
261
261
} ) ;
262
262
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
+
263
281
signals . timeChanged . add ( function ( ) {
264
282
265
283
updateTimeMark ( ) ;
266
284
267
285
} ) ;
268
286
269
287
signals . timelineScaled . add ( function ( value ) {
288
+
270
289
scale = value ;
290
+
271
291
updateMarks ( ) ;
272
292
updateTimeMark ( ) ;
273
293
updateContainers ( ) ;
294
+
274
295
} ) ;
275
296
276
297
signals . windowResized . add ( function ( ) {
You can’t perform that action at this time.
0 commit comments