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>