[Air/Flex]ViewStackの落とし穴
画像一覧で、表示形式をリストとサムネイルの一覧で切り替えられるという仕様があったので、ViewStackを使ってみることにしました。
ViewStackの上にDataGridとListを配置して、切り替えボタンのクリックイベントハンドラで、ViewStackのselectedItemIndexプロパティを変更してやると(実際にはデータバインディングを使用していますが)、あっという間にリスト切り替えの実装が完了してしまいました。
あー、楽ちん。
と、ここまでは良かったのですが、画像一覧のクリックイベントを処理するために、DataGridとListの両方にクリックイベントハンドラを追加したところ、addEventListnerでNullPointerExceptionが発生してしまいました。
まさかとは思ったのですが、どうやらViewStack上に配置された初期状態で不可視状態のコンポーネントのインスタンスは、初めて表示されるタイミングで生成される仕様みたいです。
「こんなんだったらViewStackなんか使わないで自前で処理した方が早いわボケー」
と思いつつ調べてみたところ、ViewStackのcreationPolicyというプロパティをallに設定することにより、ViewStackの初期化の際に、ViewStack上に配置されたすべてのコンポーネントのインスタンスが生成されるようになり、万事解決めでたしめでたしと相成りました。
ということで無事に一件落着したわけですが、この広い野原いっぱいインターネットの世界の中で、検索の末にこの解決策を発見したのが、同じアイレットの中のH君のCTOA日記内のエントリーだったというこのなんという偶然!
なんて言ってみましたが、実際は偶然でもなんでもなく、AirやFlex関連で困った時にいろいろ検索していると、高い確率でCTOA日記に行き当たるので、即ちCTOA日記には、有益な情報がいっぱい詰まっているということです。
そんなわけで、こんなブログより7倍(当社比)ためになるCTOA日記もよろしく。
トラックバック(0)
このブログ記事を参照しているブログ一覧: [Air/Flex]ViewStackの落とし穴
このブログ記事に対するトラックバックURL: http://ushi.donburi.net/mt/mt-tb.cgi/13



コメントする