2

これは、ダーツで「マルチスレッド」を行う方法に関するダーツ初心者の質問です。

(すみません、私は古い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();
}
4

1 に答える 1