Добрый день!
Я пытаюсь сделать простейшую админку для flash сайта. XML с исходными данными отображается с помощью mx:Tree, и далее по идее текст выделенного узла отправляется в RichTextEditor.
Все работает, когда в качестве treeLabel используются аттрибуты XML. Однако, основной текст идет с html-разметкой, в теле CDATA, и в этом случае содержимое tree не обновляется.
Исходный код:

Код:
<?xml version="1.0" encoding="utf-8"?>
<!-- Контрольная панель -->
<mx:Application xmlns:mx="http://www.adobe.com/2006/mxml"
creationComplete="loadSource()"
>
<mx:Script>
<![CDATA[
import utils.CDATA;
import mx.collections.XMLListCollection;
[Bindable]
public var selectedNode:XML;
public var loaderData:XML;
[Bindable]
public var viewEntry:String;
public var newText:String;
[Bindable]
public var debugText:String;
public var item:XML;
public var loader:URLLoader=new URLLoader();
[Bindable]
private var siteData:XMLListCollection;
public var source:URLRequest=new URLRequest("data/xml/data.xml");
public function treeChanged(event:Event):void {
selectedNode=Tree(event.target).selectedItem as XML;
if(selectedNode.nodeKind()=="text")
{
editor.htmlText=selectedNode;
}else{
editor.htmlText=selectedNode.@alias
}
}
public function textChanged(event:Event):void
{
var currentItem:XML=XML(siteTree.selectedItem);
if(currentItem.nodeKind()=="text")
{
newText=event.target.htmlText;
//CDATA.make() преобразует строку и добавляет теги CDATA
currentItem=XML(CDATA.make(newText));
}else{
newText=event.target.text;
currentItem.@alias=newText;
}
}
public function loadSource():void
{
loader.load(source);
loader.addEventListener(Event.COMPLETE,handleXML);
}
public function handleXML(event:Object):void
{
loaderData=XML(loader.data);
siteData=new XMLListCollection(loaderData.project.language);
}
private function treeLabel(item:Object):String {
var node:XML = XML(item);
if( node.nodeKind()=="text")
return node;
else
return node.@alias;
}
]]>
</mx:Script>
<mx:Panel title="Панель управления" height="95%" width="95%"
paddingTop="10" paddingLeft="10" paddingRight="10" paddingBottom="10">
<mx:Label width="100%" color="blue"
text="Выберите раздел"/>
<mx:HDividedBox width="100%" height="100%">
<mx:Tree
id="siteTree"
width="50%"
height="100%"
labelFunction="treeLabel"
showRoot="true"
dataProvider="{siteData}"
change="treeChanged(event)"/>
<mx:RichTextEditor
id="editor"
title="Редактор"
height="100%" width="50%"
text="Ожидание..."
change="textChanged(event)"
/>
<mx:TextArea
width="100%"
height="50%"
text="{debugText}"
>
</mx:TextArea>
</mx:HDividedBox>
</mx:Panel>
</mx:Application>
И здесь то что получается в итоге:
http://www.project47.ru/dev/testap/AD.html
Заранее извиняюсь за возможные неконструктивности в коде. Я совсем новичок во flex.