O seguinte é minha solução:
1- Criar um TreeItemRenderer feito sob encomenda como segue:
RadioButtonTreeItemRenderer.as
_________________________________________________
pacote
{
importação flash.events. Evento;
importação mx.controls.RadioButton;
importação mx.controls.RadioButtonGroup
;
importação mx.controls.treeClasses.*;
a classe pública RadioButtonTreeItemRenderer
estende TreeItemRenderer
{
público var RadioBtn: RadioButton;
público var RadioBtnGR: RadioButtonGroup
itemXml público do var: XML;
função pública RadioButtonTreeItemRenderer
()
{
super ();
mouseEnabled = falso;
}
dados ajustados da função pública da ultrapassagem (valor: Objeto): vácuo {
se (valor! = zero) {
super.data = valor;
this.itemXml = XML (valor);
se (== de this.itemXml.@checked verdadeiro) {
this.RadioBtn.selected = retificam;
} mais {
this.RadioBtn.selected = falso;
}
}
}
a função protegida ultrapassagem createChildren (): vácuo {
super.createChildren ();
RadioBtn = RadioButton novo ();
RadioBtnGR = RadioButtonGroup novo ();
RadioBtn.group = RadioBtnGR;
addChild (RadioBtn);
}
updateDisplayList protegido ultrapassagem da função (unscaledWidth
: Número
, unscaledHeight: Número): vácuo
{
super.updateDisplayList (unscaledWidth
, unscaledHeight
);
se (super.data) {
tld do var: TreeListData = TreeListData (super.listData
);
se (tld.hasChildren) {
this.RadioBtn.visible = falso;
} mais {
this.RadioBtn.visible = retificam;
}
se (RadioBtn.visible) {
this.RadioBtn.x = super.label.x
super.label.x = this.RadioBtn.x + 17;
this.RadioBtn.y = super.label.y+8;
}
}
}
}
}
________________________________________
2- o código de aplicação é:
backgroundColor= " #FFFFFF " de http://www.adobe.com/2006/mxml " >
importação mx.collections.ArrayCollection;
importação mx.rpc.events.ResultEvent;
importação mx.controls. Alerta;
função confidencial TreeClickHandler (evento: Evento): vácuo
{
selectedXmlList do var: XMLList;
itemObject do var: Objeto = event.currentTarget.selectedItem;
se (! myTree.dataDescriptor.isBranch (itemObject)) {
selectedXmlList = myData.item.part. (== itemObject.@parentid do @parentid);
processSelection (selectedXmlList, itemObject.@id);
}
}
processSelection confidencial da função (lista: XMLList, Objid: Corda): vácuo {
artigo do var: XML;
para cada um (artigo na lista) {
se (item.@id! =Objid)
{
item.@checked = falso;
} mais
{
item.@checked = retificam;
}
}
}
]] >
id= " myTree "
itemClick= " TreeClickHandler (evento) “
itemRenderer= " RadioButtonTreeItemRenderer "
showRoot= " falso "
width= " 100% "
height= " 100% "
labelField= " @label "
folderClosedIcon= " {zero} “
folderOpenIcon= " {zero} “
defaultLeafIcon= " {zero} “
dataProvider= " {myData} “
openItems= " {myData. .item} “>