Azy
07.02.2007, 15:49
<?xml version="1.0" encoding="utf-8"?>
<mx:Application xmlns:mx="http://www.adobe.com/2006/mxml" layout="absolute" xmlns:ed="ed.*" creationComplete="initEditor()">
<mx:Script>
<![CDATA[
public function initEditor():void
{
var scriptUrl:String = "http://192.168.0.6/index.php";
tree.setUrl(scriptUrl);
tree.loadData();
}
]]>
</mx:Script>
<mx:Panel title="Редактор прайс-листов" height="100%" width="100%" paddingBottom="10" paddingLeft="10" paddingRight="10" paddingTop="10">
<mx:HBox width="100%" height="100%">
<mx:VBox width="25%" height="100%">
<ed:eTree id="tree" width="100%" height="100">
</ed:eTree>
</mx:VBox>
<mx:VBox width="75%" height="100%">
<mx:DataGrid width="100%" height="100%">
</mx:DataGrid>
</mx:VBox>
</mx:HBox>
</mx:Panel>
</mx:Application>
и
// ActionScript file
package ed
{
import mx.controls.Tree;
import flash.events.Event;
import flash.net.URLRequest;
import flash.net.URLLoader;
public class eTree extends Tree
{
public var url:String;
public var myLoader:URLLoader
public var xml:XML;
public function eTree()
{
super();
}
public function setUrl(newUrl:String):void
{
this.url = newUrl;
}
public function loadData():void
{
xml = new XML();
var myXMLURL:URLRequest = new URLRequest(url+"?do=getXMLTree");
myLoader = new URLLoader(myXMLURL);
myLoader.addEventListener("complete", xmlLoaded);
}
public function xmlLoaded(evtObj:Event):void
{
//trace(xml.);
this.dataProvider = myLoader.data;
}
}
}
При установке this.dataProvider = myLoader.data; вместо дерева в компоненте появляется xml, который получаю с сервера. Где ошибка?
PS получаемый XML:
<?xml version="1.0" encoding="utf-8"?>
<nodes>
<node label="Производственное оборудование" path ="01" id="1">
<node label="Металлургическое оборудование" path ="0101" id="2">
<node label="asdfasd" path ="010101" id="294"/>
</node>
<node label="Металлообрабатывающее оборудование" path ="0102" id="3"/>
<node label="Нефтегазоперерабатывающее оборудование" path ="0103" id="4"/>
</node>
</nodes>
<mx:Application xmlns:mx="http://www.adobe.com/2006/mxml" layout="absolute" xmlns:ed="ed.*" creationComplete="initEditor()">
<mx:Script>
<![CDATA[
public function initEditor():void
{
var scriptUrl:String = "http://192.168.0.6/index.php";
tree.setUrl(scriptUrl);
tree.loadData();
}
]]>
</mx:Script>
<mx:Panel title="Редактор прайс-листов" height="100%" width="100%" paddingBottom="10" paddingLeft="10" paddingRight="10" paddingTop="10">
<mx:HBox width="100%" height="100%">
<mx:VBox width="25%" height="100%">
<ed:eTree id="tree" width="100%" height="100">
</ed:eTree>
</mx:VBox>
<mx:VBox width="75%" height="100%">
<mx:DataGrid width="100%" height="100%">
</mx:DataGrid>
</mx:VBox>
</mx:HBox>
</mx:Panel>
</mx:Application>
и
// ActionScript file
package ed
{
import mx.controls.Tree;
import flash.events.Event;
import flash.net.URLRequest;
import flash.net.URLLoader;
public class eTree extends Tree
{
public var url:String;
public var myLoader:URLLoader
public var xml:XML;
public function eTree()
{
super();
}
public function setUrl(newUrl:String):void
{
this.url = newUrl;
}
public function loadData():void
{
xml = new XML();
var myXMLURL:URLRequest = new URLRequest(url+"?do=getXMLTree");
myLoader = new URLLoader(myXMLURL);
myLoader.addEventListener("complete", xmlLoaded);
}
public function xmlLoaded(evtObj:Event):void
{
//trace(xml.);
this.dataProvider = myLoader.data;
}
}
}
При установке this.dataProvider = myLoader.data; вместо дерева в компоненте появляется xml, который получаю с сервера. Где ошибка?
PS получаемый XML:
<?xml version="1.0" encoding="utf-8"?>
<nodes>
<node label="Производственное оборудование" path ="01" id="1">
<node label="Металлургическое оборудование" path ="0101" id="2">
<node label="asdfasd" path ="010101" id="294"/>
</node>
<node label="Металлообрабатывающее оборудование" path ="0102" id="3"/>
<node label="Нефтегазоперерабатывающее оборудование" path ="0103" id="4"/>
</node>
</nodes>