XML 作为数据源的实例(TESTED)
<?xml version="1.0" encoding="utf-8"?>
<mx:Application xmlns:mx="http://www.adobe.com/2006/mxml" layout="absolute" preinitialize="preInit()" fontSize="12" height="500">
<mx:Script>
<![CDATA[
import mx.collections.XMLListCollection;
import mx.events.MenuEvent;
import mx.controls.Alert;
import flash.net.URLLoader;
import flash.net.URLRequest;
import flash.events.Event;
[Bindable]
public var selectedNode:XML;
public var resultXML:XML;
public function preInit():void
{
//var targetURL:String="http://10.1.0.33/temp/myTxt.xml";
var targetURL:String="ZTreeXml1.xml";
var request:URLRequest=new URLRequest(targetURL);
var variables:URLLoader=new URLLoader();
variables.addEventListener(Event.COMPLETE,completeHandler);
try
{
// status="加载成功--啦啦啦";
variables.load(request);
}
catch(error:Error)
{
//status="加载失败";
trace("无法加载"+error);
}
}
private function completeHandler(event:Event):void
{
trace(event.target.data is String);
selectedNode=new XML(event.target.data);
myTree.dataProvider=selectedNode;
}
// Event handler for the Tree control change event.
public function treeChanged(event:Event):void {
selectedNode=Tree(event.target).selectedItem as XML;
player.load();
}
]]>
</mx:Script>
<mx:TitleWindow height="100%" width="100%"
paddingTop="10" paddingLeft="10" paddingRight="10" paddingBottom="10" x="0" y="0" title="客户端程序" backgroundAlpha="0.39" showCloseButton="false">
<mx:HDividedBox width="100%" height="100%">
<mx:Tree id="myTree" width="20%" height="100%" labelField="@label"
showRoot="false" change="treeChanged(event)" alpha="0.5"/>
<mx:SWFLoader width="554" height="100%" source="{selectedNode.@url}" autoLoad="false" id="player"/>
</mx:HDividedBox>
</mx:TitleWindow>
</mx:Application>
<?xml version="1.0" encoding="utf-8"?>
<novel label="盗墓笔记">
<part label="第一单元">
<part label="第一单元例题一">
<chapter label="练习题一" txt="练习题一内容" url="第一单元/例题一/早发白帝城口型.swf"></chapter>
<chapter label="练习题二" txt="练习题二内容" url="第一单元/例题一/奥运〈完整版〉.swf"></chapter>
</part>
<part label="第一单元例题二">
<chapter label="练习题一" txt="练习题一内容" url="第一单元/例题二/t1.swf"></chapter>
<chapter label="练习题二" txt="练习题二内容" url="第一单元/例题二/t2.swf"></chapter>
</part>
<part label="第一单元例题三">
<chapter label="练习题一" txt="练习题一内容" url="第一单元/例题三/t1.swf"></chapter>
<chapter label="练习题二" txt="练习题二内容" url="第一单元/例题三/t2.swf"></chapter>
</part>
</part>
<part label="第二单元">
<part label="第二单元例题一">
<chapter label="练习题一" txt="练习题一内容" url="第二单元/例题一/t1.swf"></chapter>
<chapter label="练习题二" txt="练习题二内容" url="第二单元/例题一/t2.swf"></chapter>
</part>
</part>
</novel>
扩展之后
<?xml version="1.0" encoding="utf-8"?>
<mx:Application xmlns:mx="http://www.adobe.com/2006/mxml" layout="absolute" preinitialize="preInit()" fontSize="12" height="500">
<mx:Script>
<![CDATA[
import mx.collections.XMLListCollection;
import mx.events.MenuEvent;
import mx.controls.Alert;
import flash.net.URLLoader;
import flash.net.URLRequest;
import flash.events.Event;
[Bindable]
public var selectedNode:XML;
public var resultXML:XML;
var data1:XML=
<root>
<person>
<name>zfs1</name>
<sex>nan1</sex>
</person>
<person>
<name>zfs2</name>
<sex>nan2</sex>
</person>
</root>
var data2:XML=
<root>
<person>
<name>zfs3</name>
<sex>nan3</sex>
</person>
<person>
<name>zfs5</name>
<sex>nan5</sex>
</person>
</root>
public function preInit():void
{
//var targetURL:String="http://10.1.0.33/temp/myTxt.xml";
var targetURL:String="ZTreeXml1.xml";
var request:URLRequest=new URLRequest(targetURL);
var variables:URLLoader=new URLLoader();
variables.addEventListener(Event.COMPLETE,completeHandler);
try
{
// status="加载成功--啦啦啦";
variables.load(request);
}
catch(error:Error)
{
//status="加载失败";
trace("无法加载"+error);
}
}
private function completeHandler(event:Event):void
{
trace(event.target.data is String);
selectedNode=new XML(event.target.data);
myTree.dataProvider=selectedNode;
}
// Event handler for the Tree control change event.
public function treeChanged(event:Event):void {
selectedNode=Tree(event.target).selectedItem as XML;
if( selectedNode.@txt == "data1"){
dg.dataProvider=data1.person;
}else{
dg.dataProvider=data2.person;
}
}
]]>
</mx:Script>
<mx:TitleWindow height="100%" width="100%"
paddingTop="10" paddingLeft="10" paddingRight="10" paddingBottom="10" x="0" y="0" title="客户端程序" backgroundAlpha="0.39" showCloseButton="false">
<mx:HDividedBox width="100%" height="100%">
<mx:Tree id="myTree" width="295" height="100%" labelField="@label"
showRoot="false" change="treeChanged(event)" alpha="0.5"/>
<mx:DataGrid width="70%" id="dg">
<mx:columns>
<mx:DataGridColumn headerText="name" dataField="name"/>
<mx:DataGridColumn headerText="sex" dataField="sex"/>
<mx:DataGridColumn headerText="Column 3" dataField="col3"/>
</mx:columns>
</mx:DataGrid>
</mx:HDividedBox>
</mx:TitleWindow>
</mx:Application>
<?xml version="1.0" encoding="utf-8"?>
<novel label="盗墓笔记">
<part label="第一单元">
<part label="第一单元例题一">
<chapter label="练习题一" txt="data1" url="第一单元/例题一/早发白帝城口型.swf"></chapter>
<chapter label="练习题二" txt="data2" url="第一单元/例题一/奥运〈完整版〉.swf"></chapter>
</part>
<part label="第一单元例题二">
<chapter label="练习题一" txt="练习题一内容" url="第一单元/例题二/t1.swf"></chapter>
<chapter label="练习题二" txt="练习题二内容" url="第一单元/例题二/t2.swf"></chapter>
</part>
<part label="第一单元例题三">
<chapter label="练习题一" txt="练习题一内容" url="第一单元/例题三/t1.swf"></chapter>
<chapter label="练习题二" txt="练习题二内容" url="第一单元/例题三/t2.swf"></chapter>
</part>
</part>
<part label="第二单元">
<part label="第二单元例题一">
<chapter label="练习题一" txt="练习题一内容" url="第二单元/例题一/t1.swf"></chapter>
<chapter label="练习题二" txt="练习题二内容" url="第二单元/例题一/t2.swf"></chapter>
</part>
</part>
</novel>