flex comboxについて
2011/07/13
flex comboxってのはhtmlで言うところのselectタグ。
単純に表示だけ
- <s:ComboBox>
- <s:ArrayCollection>
- <fx:String>AK</fx:String>
- <fx:String>AL</fx:String>
- <fx:String>AM</fx:String>
- </s:ArrayCollection>
- </s:ComboBox>
s:ComboBoxの値を渡す(表示する内容と値は別)
見えるもの(labelの値)と実際に渡したい値(dataの値)は別ってヤツ。
s:ComboBoxの記述
- <s:ComboBox id="ComboBox">
- <s:dataProvider>
- <s:ArrayCollection>
- <s:source>
- <fx:Object label="表示する値A" data="渡す値A"/>
- <fx:Object label="表示する値B" data="渡す値B"/>
- </s:source>
- </s:ArrayCollection>
- </s:dataProvider>
- </s:ComboBox>
受け取る側(script側)の記述
sample = ComboBox.selectedItem.data;
※「id」が「ComboBox」で、選択されたアイテムの「dataの値」を取得。
※「id」が「ComboBox」で、選択されたアイテムの「dataの値」を取得。
s:ComboBoxを変更する(dataの値を使う)
HTMLで言うところの「selected=selected」とする。
「○○○」をクリックしたら「comboBox」の選択されているモノを変更したい。
- var ac:ArrayCollection = ComboBox.dataProvider as ArrayCollection;
- var value:String = "○○○";
- for (var iCnt:int=0 ; iCnt<ac.length ; iCnt++)
- {
- if(ac[iCnt]['data'] == value){
- ComboBox.selectedIndex = iCnt;
- return;
- }
- }
プチメモ
1行目の「ComboBox.dataProvider as ArrayCollection」は、「id=ComboBox」の中にある「dataProvider」ってヤツを「ArrayCollection」にする。
3行目で「ac」がある分ループ。
5行目で「ac」の「iCnt」番目にある「data」が「value」と等しいかチェック。
6行目で「id=ComboBox」の「iCnt」番目が選択されていることにする。