Следующий будет моим разрешением:
1- Создайте изготовленный на заказ TreeItemRenderer следующим образом:
RadioButtonTreeItemRenderer.as
_________________________________________________
пакет
{
ввоз flash.events. Случай;
ввоз mx.controls.RadioButton;
ввоз mx.controls.RadioButtonGroup
;
ввоз mx.controls.treeClasses.*;
общественный тип RadioButtonTreeItemRenderer
расширяет TreeItemRenderer
{
публика var RadioBtn: RadioButton;
публика var RadioBtnGR: RadioButtonGroup
общественное itemXml var: XML;
общественная функция RadioButtonTreeItemRenderer
()
{
супер ();
mouseEnabled = ложно;
}
данные по общественной функции преодоления автоматического действия установленные (значение: Предмет): свободное пространство {
если (значение! = null) {
super.data = значение;
this.itemXml = XML (значение);
если (== this.itemXml.@checked поистине) {, то
this.RadioBtn.selected = true;
} еще {
this.RadioBtn.selected = ложно;
}
}
}
функция защищенная преодолением автоматического действия createChildren (): свободное пространство {
super.createChildren ();
RadioBtn = новое RadioButton ();
RadioBtnGR = новое RadioButtonGroup ();
RadioBtn.group = RadioBtnGR;
addChild (RadioBtn);
}
защищенное преодолением автоматического действия updateDisplayList функции (unscaledWidth
: Номер
, unscaledHeight: Номер): свободное пространство
{
super.updateDisplayList (unscaledWidth
, unscaledHeight
);
если (super.data) {, то
tld var: TreeListData = TreeListData (super.listData
);
если (tld.hasChildren) {, то
this.RadioBtn.visible = ложно;
} еще {
this.RadioBtn.visible = true;
}
если (RadioBtn.visible) {, то
this.RadioBtn.x = super.label.x
super.label.x = this.RadioBtn.x + 17;
this.RadioBtn.y = super.label.y+8;
}
}
}
}
}
________________________________________
2- Кодий применения является следующим:
backgroundColor= " #FFFFFF " http://www.adobe.com/2006/mxml " >
ввоз mx.collections.ArrayCollection;
ввоз mx.rpc.events.ResultEvent;
ввоз mx.controls. Сигнал тревога;
приватная функция TreeClickHandler (случай: Случай): свободное пространство
{
selectedXmlList var: XMLList;
itemObject var: Предмет = event.currentTarget.selectedItem;
если (! myTree.dataDescriptor.isBranch (itemObject)) {
selectedXmlList = myData.item.part. (== itemObject.@parentid @parentid);
processSelection (selectedXmlList, itemObject.@id);
}
}
приватное processSelection функции (список: XMLList, Objid: Шнур): свободное пространство {
деталь var: XML;
для каждого (деталь в списке) {
если (item.@id! =Objid)
{
item.@checked = ложно;
} еще
{
item.@checked = true;
}
}
}
]] >
id= " myTree "
itemClick= " TreeClickHandler (случай) «
itemRenderer= " RadioButtonTreeItemRenderer "
showRoot= " ложное "
width= " 100% "
height= " 100% "
labelField= " @label "
folderClosedIcon= " {null} «
folderOpenIcon= " {null} «
defaultLeafIcon= " {null} «
dataProvider= " {myData} «
openItems= " {myData. .item} «>