flex XML 作爲數據源的實例(TESTED)

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>

發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章