Das folgende ist meine Lösung:
1- Ein kundenspezifisches TreeItemRenderer verursachen, wie folgt:
RadioButtonTreeItemRenderer.as
_________________________________________________
Paket
{
Import flash.events. Ereignis;
Import mx.controls.RadioButton;
Import mx.controls.RadioButtonGroup
;
Import mx.controls.treeClasses.*;
allgemeine Kategorie RadioButtonTreeItemRenderer
verlängert TreeItemRenderer
{
Öffentlichkeit var RadioBtn: RadioButton;
Öffentlichkeit var RadioBtnGR: RadioButtonGroup
allgemeines var itemXml: XML;
allgemeine Funktion RadioButtonTreeItemRenderer
()
{
Super ();
mouseEnabled = falsch;
}
gesetzte Daten der allgemeinen Funktion der Übersteuerung (Wert: Gegenstand): Lücke {
wenn (Wert! = Null) {
super.data = Wert;
this.itemXml = XML (Wert);
wenn (this.itemXml.@checked == zutreffend) {
this.RadioBtn.selected = ausrichten en;
} sonst {
this.RadioBtn.selected = falsch;
}
}
}
Übersteuerung geschützte Funktion createChildren (): Lücke {
super.createChildren ();
RadioBtn = neues RadioButton ();
RadioBtnGR = neues RadioButtonGroup ();
RadioBtn.group = RadioBtnGR;
addChild (RadioBtn);
}
Übersteuerung geschütztes Funktion updateDisplayList (unscaledWidth
: Zahl
, unscaledHeight: Zahl): Lücke
{
super.updateDisplayList (unscaledWidth
, unscaledHeight
);
wenn (super.data) {
var tld: TreeListData = TreeListData (super.listData
);
wenn (tld.hasChildren) {
this.RadioBtn.visible = falsch;
} sonst {
this.RadioBtn.visible = ausrichten en;
}
wenn (RadioBtn.visible) {
this.RadioBtn.x = super.label.x
super.label.x = this.RadioBtn.x + 17;
this.RadioBtn.y = super.label.y+8;
}
}
}
}
}
________________________________________
2- Anwendungscode ist:
http://www.adobe.com/2006/mxml " backgroundColor= " #FFFFFF " >
Import mx.collections.ArrayCollection;
Import mx.rpc.events.ResultEvent;
Import mx.controls. Alarm;
private Funktion TreeClickHandler (Ereignis: Ereignis): Lücke
{
var selectedXmlList: XMLList;
var itemObject: Gegenstand = event.currentTarget.selectedItem;
wenn (! myTree.dataDescriptor.isBranch (itemObject)) {
selectedXmlList = myData.item.part. (@parentid == itemObject.@parentid);
processSelection (selectedXmlList, itemObject.@id);
}
}
privates Funktion processSelection (Liste: XMLList, Objid: Schnur): Lücke {
var-Einzelteil: XML;
für jedes (Einzelteil in der Liste) {
wenn (item.@id! =Objid)
{
item.@checked = falsch;
} sonst
{
item.@checked = ausrichten en;
}
}
}
]] >
id= " myTree "
itemClick= " TreeClickHandler (Ereignis) „
itemRenderer= " RadioButtonTreeItemRenderer "
showRoot= " falsch "
width= " 100% "
height= " 100% "
labelField= " @label "
folderClosedIcon= " {Null} „
folderOpenIcon= " {Null} „
defaultLeafIcon= " {Null} „
dataProvider= " {myData} „
openItems= " {myData. .item} „>