flex TabNavigatorの切り替え

2011/07/21

何かの処理をしたときに併せてTabNavigatorを切り替えたい。

任意の場所で下記。

[TabNavigatorのid].selectedIndex = 1;

メモ

やりたいことは下記。

「DataGrid」にDBの内容を出力。
「TabNavigator」で「新規追加用のフォーム・タブ」「修正用のフォーム・タブ」を追加。
「DataGrid」のデータを選択したら、「修正用のフォーム・タブ」を「開く・値を入れる」を実行したい。

表示されないエラーの防止

詳しくは分からないけど「[mx:TabNavigator]の描画が終了するまで次に進まない」ってことになるのかな。

「mx:TabNavigator」に「creationPolicy="all"」を追加。

最初のソース(TabNavigator切替えを記載する前)

解釈が根本的に間違ってたので理解するのに苦労した。

下記は「application1_creationCompleteHandler()」が実行されたら「dataGrid.addEventListener()」を実行という意味。
次に「dataGrid.addEventListener()」は「GridSelectionEvent.SELECTION_CHANGE」になったら「onSelectedItem()」を実行という意味になるらしい。
コレを「application1_creationCompleteHandler()」が実行されたら「onSelectedItem()」を実行すると勘違いしてた。

  1. // データグリッドが選択されたときの処理
  2. protected function application1_creationCompleteHandler(event:FlexEvent):void
  3. {
  4.   dataGrid.addEventListener(GridSelectionEvent.SELECTION_CHANGE, onSelectedItem);
  5. }
  6.  
  7. // データグリッドが選択されたら、修正用フォームに値を表示する
  8. private function onSelectedItem(e:GridSelectionEvent):void{
  9.   ~~~
  10. }

TabNavigator切替えを記載したソース

  1. // データグリッドが選択されたときの処理
  2. protected function application1_creationCompleteHandler(event:FlexEvent):void
  3. {
  4.   dataGrid.addEventListener(GridSelectionEvent.SELECTION_CHANGE, onSelectedItem);
  5.  
  6.   //最初は、ココに記載した。
  7.   //[TabNavigatorのid].selectedIndex = 1;
  8. }
  9.  
  10. // データグリッドが選択されたら、修正用フォームに値を表示する
  11. private function onSelectedItem(e:GridSelectionEvent):void{
  12.   ~~~
  13.   // 0番目でなく、1番目を開くようにしたい
  14.   [TabNavigatorのid].selectedIndex = 1;
  15. }

私は「「application1_creationCompleteHandler()」が実行されたら「onSelectedItem()」を実行する」と勘違いしていた。
そのため「application1_creationCompleteHandler()」の中の最後に「[TabNavigatorのid].selectedIndex」を入れていた。

下記のように勘違いしてた。

「application1_creationCompleteHandler()」が実行されたら「onSelectedItem()」を実行する。
その次に「[TabNavigatorのid].selectedIndex」を実行する。

実際は下記のような感じ。

「application1_creationCompleteHandler()」が実行されたら「dataGrid.addEventListener()」を実行。
「GridSelectionEvent.SELECTION_CHANGE」にならなくても「[TabNavigatorのid].selectedIndex」を実行する。

新着(ニュース関連以外)

2017-11-09
PCでプッシュ通知ってのをしたい。
2017-11-06
PHPのバージョンを上げたらwikiが壊れたっぽい。
2017-08-03
formのinputでmaxlengthを使うとFirefoxでバグってた。他のブラウザでも気づかずにバグってたかもしれない。
2017-07-19
折れ線グラフをもう少しゆるやかに・・・というか何というか・・・調べていくと「移動平均」っていう言葉にたどり着いた
2017-07-10
FuelPHPの1.8をダウンロードして使っていたらセッションが使えないということに気付いた。