ドゥアイネットのプログラマー、湯川が開発日記を綴ります。

CALENDAR
S M T W T F S
1234567
891011121314
15161718192021
22232425262728
293031    
<< December 2019 >>
ARCHIVES
CATEGORIES
<< FenrirFS | main | PDFJを使用したPDF作成1 >>
callLater
 callLaterは便利なメソッドです。

callLaterは
「creationComplete イベントと共に使用され、
コンポーネントの生成が完了したことを確認してから、
そのコンポーネントに対する指定のメソッドの呼び出しを行うようにします。」
といったものです。

Flexでは、画面表示したときにフォーカスをセットするとか、
ドロップダウンリストにリストをセットして、デフォルト値を選択させるなど
すると、うまくいかない場合があります。

ドロップダウンリストだと、見た目は設定したデフォルト値を選択しているのに
selectedIndexは0だったりします。

こんなときに「callLater」を使うとうまくいきます。

 for each (var v_item:Object in v_prefarray) {
  //北海道から沖縄まで追加
  list.addItem(v_item.label,v_item.value);
 }
 
 list.selectedIndex = 41;//長崎を選択

 このままだと見た目は選択されますが、
 selectedIndexが違ったりします。

画像

 callLaterを使うと選択もされselectedIndexも正しい値になります。

 for each (var v_item:Object in v_prefarray) {
  //北海道から沖縄まで追加
  list.addItem(v_item.label,v_item.value);
 }
 Application.application.callLater(
  function ():void
  {
   list.selectedIndex = 41;//長崎を選択
  }
 );
 
 処理が空いたら次に行うfunctionをセットできるといった感じです。
 微妙に変な動きになったときに使うとだいたい解決できます。
| Flex | 17:18 | comments(0) | - |
コメント
コメントする