Archive for 2009/5/9
ことの発端は、よくアプリケーションであるウィザードコンポーネントを作成しようと思ったところが発端だ。
ウィザードコンポーネントとは、画面が数枚あり、それを「次へ」で遷移していき処理を終了させるというやつだ。
はじめは、ポップアップを切り替えて作ろうとも思ったが、それではたびたび作るときに面倒だと思ったので、いっそ、作成してみようと思った。
しかしながら、意外に難しい。
やろうとしているのはViewStackのように中にコンポーネントをmxmlで追加してくことができて、その部品(ページ)でウィザードが自動的に出来上がるという感じだ。
まずは、ViewStackを継承してあらたに、Wizardとうコンポーネントを作成することにした。
さて、ViewStackを継承してみたものの、どこにボタンを表示させればいいのだ?という疑問にぶつかった。
ボタンを通常どおり、ViewStackにaddChildしては、ボタンがページになってしまうではないか・・・・
んー、と思っていたら、そういえば、TabNavigatorが同じようにViewStackを継承して作っているにも関わらず、
TabBarを上部に表示していたことを思い出した。
このTabBarの部分をHBoxにして下に表示させれば問題ないはずだと気がついた。
で、TabNavigatorを見よう見まねで作りかえ完成した(させた)ものが下のような感じです。
<ui :Wizard> <mx :Canvas /> <mx :Canvas /> <mx :Canvas /> </ui>
こんな感じで、コンポーネントを表示することができるようにしています。
また、単なる表示するだけなので、今後の課題としては、このボタンを操作とイベントが扱えるようにしたいと思います。
まだ、途中ですが、ソースはここからダウンロードできます。
あと、理解の課題としては、Flexでのコンポーネントのサイズの計算をもっと理解しなければなと思った限りです。

