不多说了,组件代码如下:
调用的app代码如下:
- <?xmlversion="1.0"encoding="utf-8"?>
- <mx:ComboBoxxmlns:mx="http://www.adobe.com/2006/mxml"creationComplete="initComponent()">
- <mx:Script>
- <![CDATA[
- importmx.events.FlexEvent;
- [Bindable]
- privatevar_label:String;
- [Bindable]
- publicvartreeSelectedItem:Object;
- publicfunctioninitComponent():void
- {
- }
- publicfunctionupdateLabel(event:*):void{
- _label=event.currentTarget.selectedItem[this.labelField];
- treeSelectedItem=event.currentTarget.selectedItem;
- }
- overrideprotectedfunctionupdateDisplayList(unscaledWidth:Number,
- unscaledHeight:Number):void
- {
- super.updateDisplayList(unscaledWidth,unscaledHeight);
- if(dropdown&&_label!=null){
- text=_label;
- }
- }
- ]]>
- </mx:Script>
- <mx:dropdownFactory>
- <mx:Component>
- <mx:TreecreationComplete="initTree()"change="outerDocument.updateLabel(event)"showRoot="true"height="500"width="500">
- <mx:Script>
- <![CDATA[
- publicfunctioninitTree():void{
- varlen:int=super.dataProvider.length;
- for(vari:int;i<len;i++)
- {
- super.expandChildrenOf(super.dataProvider[i],true);
- }
- super.selectedItem=outerDocument.treeSelectedItem;
- }
- ]]>
- </mx:Script>
- </mx:Tree>
- </mx:Component>
- </mx:dropdownFactory>
- </mx:ComboBox>
- <?xmlversion="1.0"encoding="utf-8"?>
- <mx:Applicationxmlns:mx="http://www.adobe.com/2006/mxml"layout="absolute"xmlns:ns1="components.*">
- <ns1:ComboTreewidth="300"id="combo"labelField="@label">
- <mx:XMLListCollectionid="MailBox">
- <mx:XMLList>
- <folderlabel="Mail">
- <folderlabel="INBOX"/>
- <folderlabel="PersonalFolder">
- <Pfolderlabel="Business"/>
- <Pfolderlabel="Demo"/>
- <Pfolderlabel="Personal"isBranch="true"/>
- <Pfolderlabel="SavedMail"/>
- </folder>
- <folderlabel="Sent"/>
- <folderlabel="Trash"/>
- </folder>
- <folderlabel="Mail2">
- <folderlabel="INBOX2"/>
- <folderlabel="PersonalFolder2">
- <Pfolderlabel="Business2"/>
- <Pfolderlabel="Demo2"/>
- <Pfolderlabel="Personal2"isBranch="true"/>
- <Pfolderlabel="SavedMail2"/>
- </folder>
- <folderlabel="Sent2"/>
- <folderlabel="Trash2"/>
- </folder>
- </mx:XMLList>
- </mx:XMLListCollection>
- </ns1:ComboTree>
- </mx:Application>
本文介绍了一个使用Flex实现的组合框组件,该组件结合了ComboBox和Tree的功能。通过自定义的组合框,用户可以从层级结构的数据中选择项。文章提供了完整的代码示例,包括组件的创建、事件处理以及如何在应用程序中调用。

6769

被折叠的 条评论
为什么被折叠?



