flex comboxについて

2011/07/13

flex comboxってのはhtmlで言うところのselectタグ。

単純に表示だけ

  1. <s:ComboBox>
  2.   <s:ArrayCollection>
  3.     <fx:String>AK</fx:String>
  4.     <fx:String>AL</fx:String>
  5.     <fx:String>AM</fx:String>
  6.   </s:ArrayCollection>
  7. </s:ComboBox>

s:ComboBoxの値を渡す(表示する内容と値は別)

見えるもの(labelの値)と実際に渡したい値(dataの値)は別ってヤツ。

s:ComboBoxの記述

  1. <s:ComboBox id="ComboBox">
  2.   <s:dataProvider>
  3.     <s:ArrayCollection>
  4.       <s:source>
  5.         <fx:Object label="表示する値A" data="渡す値A"/>
  6.         <fx:Object label="表示する値B" data="渡す値B"/>
  7.       </s:source>
  8.     </s:ArrayCollection>
  9.   </s:dataProvider>
  10. </s:ComboBox>

受け取る側(script側)の記述

sample = ComboBox.selectedItem.data;
※「id」が「ComboBox」で、選択されたアイテムの「dataの値」を取得。

s:ComboBoxを変更する(dataの値を使う)

HTMLで言うところの「selected=selected」とする。
「○○○」をクリックしたら「comboBox」の選択されているモノを変更したい。

  1. var ac:ArrayCollection = ComboBox.dataProvider as ArrayCollection;
  2. var value:String = "○○○";
  3. for (var iCnt:int=0 ; iCnt<ac.length ; iCnt++)
  4. {
  5.   if(ac[iCnt]['data'] == value){
  6.     ComboBox.selectedIndex = iCnt;
  7.     return;
  8.   }
  9. }

プチメモ

1行目の「ComboBox.dataProvider as ArrayCollection」は、「id=ComboBox」の中にある「dataProvider」ってヤツを「ArrayCollection」にする。

3行目で「ac」がある分ループ。
5行目で「ac」の「iCnt」番目にある「data」が「value」と等しいかチェック。
6行目で「id=ComboBox」の「iCnt」番目が選択されていることにする。

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

2017-08-03
formのinputでmaxlengthを使うとFirefoxでバグってた。他のブラウザでも気づかずにバグってたかもしれない。
2017-07-19
折れ線グラフをもう少しゆるやかに・・・というか何というか・・・調べていくと「移動平均」っていう言葉にたどり着いた
2017-07-10
FuelPHPの1.8をダウンロードして使っていたらセッションが使えないということに気付いた。
2017-06-27
MACにWin10をインストールしてみた:再挑戦。
2017-06-25
「簡単」っていうヤツらが多いけど・・・難しいぞ。