Skip to content

Commit b6c284c

Browse files
committed
option to update the fps of the gif
1 parent e35e13f commit b6c284c

File tree

1 file changed

+12
-5
lines changed
  • packages/2d/src/Components

1 file changed

+12
-5
lines changed

packages/2d/src/Components/GIF.ts

Lines changed: 12 additions & 5 deletions
Original file line numberDiff line numberDiff line change
@@ -4,10 +4,17 @@ import gifken, { Gif } from 'gifken';
44

55
interface GIFInterface extends AnimationAPI<HTMLImageElement> {
66
getGif(): Gif,
7-
drawCurrentFrame(context: CanvasRenderingContext2D): void;
7+
drawCurrentFrame(context: CanvasRenderingContext2D, x?: number, y?: number): void;
88
}
99

10-
export default function GIF(options: { url: string, width: number, height: number, fps?: number, compressed?: boolean, loop?: boolean }): GIFInterface {
10+
export default function GIF(options: {
11+
url: string,
12+
width: number,
13+
height: number,
14+
fps?: number,
15+
compressed?: boolean,
16+
loop?: boolean
17+
}): GIFInterface {
1118
useType(GIF);
1219
let gif: Gif = new Gif();
1320
let frames: AnimationFrame<HTMLImageElement>[] = [];
@@ -31,17 +38,17 @@ export default function GIF(options: { url: string, width: number, height: numbe
3138
if(frames.length - 1 <= i && options.loop && play) {
3239
i = 0;
3340
}
34-
}, 30)
41+
}, 1000 / (options.fps || 25))
3542
})
3643

3744

3845
return {
3946
getGif() {
4047
return gif;
4148
},
42-
drawCurrentFrame(context: CanvasRenderingContext2D) {
49+
drawCurrentFrame(context: CanvasRenderingContext2D, x: number = 0, y: number = 0) {
4350
if(frames.length !== 0 && play) {
44-
context.drawImage(frames[i].data, 0, 0);
51+
context.drawImage(frames[i].data, x, y);
4552
}
4653
},
4754
frames: frames,

0 commit comments

Comments
 (0)