blob: 778e58304b54121de8b0b93ddd24a3dd57b64399 (
plain) (
blame)
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
|
<script lang="ts">
let {
frame = $bindable(),
frameCount,
fps,
playing = $bindable(),
playbackStarted = $bindable()
}: {
frame: number;
frameCount: number;
fps: number | undefined;
playing: boolean;
playbackStarted: number;
} = $props();
</script>
<svelte:window
onkeypress={(e) => {
switch (e.key) {
case ' ':
e.preventDefault();
playing = !playing;
break;
// default:
// if (dev) console.debug('Keypress:', e.key);
// break;
}
}}
onkeydown={(e) => {
switch (e.key) {
case 'ArrowLeft':
e.preventDefault();
frame = Math.max(frame - (e.ctrlKey ? (fps ?? 60) : 1), 0);
break;
case 'ArrowRight':
e.preventDefault();
frame = Math.min(frame + (e.ctrlKey ? (fps ?? 60) : 1), frameCount);
break;
// default:
// if (dev) console.debug('Keydown:', e.key);
// break;
}
}}
/>
|