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>

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值