これは、ダーツで「マルチスレッド」を行う方法に関するダーツ初心者の質問です。
(すみません、私は古いJava開発者です...)
だから私はこの種のコードを持っています(以下を参照)が、GUIの再作成にはコストがかかるため、_onWindowResize()でGUIを再作成する代わりに、サイズがいつの間にか安定。たとえば、1 秒間。
スレッドがすでに開始されている場合は、何もしません。(ちなみにStageXLはカッコイイです....)
(これにより、_onWindowResize() が dart:html によって 2 回呼び出されるというバグも修正されます ...)
...
html.window.onResize.listen((e) => _onWindowResize());
}
_createGui() {
var shape = new Shape();
shape.graphics.ellipse(html.window.innerWidth / 2, html.window.innerHeight / 2, html.window.innerWidth / 4, html.window.innerHeight / 4);
shape.graphics.fillColor(Color.Red);
stage.addChild(shape);
}
void _onWindowResize() {
print("New window size ${html.window.innerWidth}x${html.window.innerHeight}");
stage = new Stage('stage', canvas);
stage.scaleMode = StageScaleMode.NO_SCALE;
stage.align = StageAlign.TOP_LEFT;
renderLoop = new RenderLoop();
renderLoop.addStage(stage);
juggler = renderLoop.juggler;
_createGui();
}