Skip to content

Commit a9523f1

Browse files
committed
feat: render after control
1 parent 580b65f commit a9523f1

File tree

2 files changed

+25
-5
lines changed

2 files changed

+25
-5
lines changed

src/core/Controller.ts

Lines changed: 1 addition & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -40,6 +40,7 @@ export class Controller {
4040
.attr("max", (d: Stage) => d.options.sec)
4141
.on("input", function (_, d: Stage) {
4242
d.sec = Number(this.value);
43+
d.render();
4344
});
4445
let play = ctrl
4546
.append("div")

src/core/Stage.ts

Lines changed: 24 additions & 5 deletions
Original file line numberDiff line numberDiff line change
@@ -6,14 +6,17 @@ import { addFrameToFFmpeg, loadffmpeg, outputMP4, removePNG } from "./FFmpeg";
66
import { recourse } from "./Recourse";
77
import { interval, Timer } from "d3";
88
import { eachLimit, eachSeries } from "async";
9-
import { createFFmpeg, FFmpeg } from "@ffmpeg/ffmpeg";
9+
import { createFFmpeg } from "@ffmpeg/ffmpeg";
10+
import { Controller } from "./Controller";
1011

1112
// Enable Path2D
1213
require("canvas-5-polyfill");
1314

1415
export class Stage {
1516
compRoot: Component = new Component();
1617
renderer: Renderer;
18+
19+
ctl: Controller;
1720
options = { sec: 5, fps: 30 };
1821
outputOptions = {
1922
fileName: "output",
@@ -68,6 +71,7 @@ export class Stage {
6871
this.renderer.setCanvas(canvas);
6972
}
7073
this.sec = 0;
74+
this.ctl = new Controller(this);
7175
}
7276

7377
addChild(child: Ani | Component) {
@@ -78,11 +82,21 @@ export class Stage {
7882
if (sec) {
7983
this.sec = sec;
8084
}
85+
if (!this.alreadySetup) {
86+
this.loadRecourse().then(() => {
87+
this.compRoot.setup(this);
88+
this.alreadySetup = true;
89+
this.doRender();
90+
});
91+
} else {
92+
this.doRender();
93+
}
94+
}
95+
private doRender() {
8196
this.renderer.clean();
8297
this.renderer.render(this.compRoot, this.compRoot.offsetSec);
8398
}
84-
85-
loadRecourse() {
99+
async loadRecourse() {
86100
return recourse.setup();
87101
}
88102

@@ -173,7 +187,12 @@ export class Stage {
173187
}
174188

175189
setup() {
176-
this.compRoot.setup(this);
177-
this.alreadySetup = true;
190+
this.loadRecourse().then(() => {
191+
this.compRoot.setup(this);
192+
this.alreadySetup = true;
193+
});
194+
}
195+
renderController() {
196+
this.ctl.render();
178197
}
179198
}

0 commit comments

Comments
 (0)