ライフサイクル

2023-05-09

ライフサイクルメソッド

FlameGameが Flutter の Widget ツリーに追加されると下図のようなライフサイクルを辿ります。
onLoad以外は複数回呼ばれることがあります。

flowchart TD
    onGameResize --> onLoad["onLoad<br>(1回のみ)"]
    onLoad --> onMount
    onMount --> Update
    Update --> Render
    Render --> Update
    Update --> onRemove

本サイトで頻繁に使うのは以下の 2 つです。

  • onLoad: 初回読み込み時に呼ばれる
  • Update: フレームごとに呼ばれる

右のライブデモを見ると、UpdateRenderはずっと呼び出されていることがわかると思います。
また、ブラウザのウィンドウサイズを変えると onGameResizeも 2 回以上呼ばれます。
今回はゲームをツリーから削除しないのでonRemoveは呼ばれず、onMountonLoadは 1 回ずつ呼ばれます。

© 2023 tnantoka