Scene.contentsを強制的に再描画できますか

ダミーの矩形を挿入・削除して再描画を誘発する方法

正しくbindして、正しくデータを操作できているはずなのに、 画面の表示がどうも期待通りに変化してくれない。 そのような状況で以下の関数は有効でした。 ここで切り替わって欲しい、という場所で呼び出せば効きます。

例:

public function updateScene(scene:Scene):Void{
  try{
    var dummy = Rectangle{
      width: scene.width height: scene.height
    }
    insert dummy into scene.content;
    delete dummy from scene.content;
  }catch(e:java.lang.Throwable){
    e.printStackTrace();
  }
}

try-catchブロックを使う必要はありません。 特に何も起きません。 Sceneと同サイズの矩形dummyをScene.contentの最後、つまり最前面に挿入して、すぐに削除します。 削除したので元と変わりは無いのですが、 Scene.content配下のNode群は、まんまと再描画をさせられてしまうようです。 Sceneにwidth, heightを設定せずStageに設定しているアプリケーションでは、 この実装に手を入れる必要があるでしょう。 本来このようなことをしなくてもいいはずなので、 シンプルな実装を心掛け、 この関数を使わずに済ませたいものです。


カウンター

Home