Flex Tree 异步加载数据及分屏小工具

Flex Tree 异步加载数据,刚开始觉得非常的难。不知道从何下手;研究之后发现很简单;下面是个完整的例子,不过代码没怎么去整理,这个只是我的一个测试代码;  运行后双击 Tree 的节点就可以看到效果。

 

<?xml version="1.0" encoding="utf-8"?>
<s:Application xmlns:fx="http://ns.adobe.com/mxml/2009"
               xmlns:s="library://ns.adobe.com/flex/spark"
               xmlns:mx="library://ns.adobe.com/flex/mx" minWidth="955" minHeight="600" creationComplete="init()">
    <s:layout>
        <s:BasicLayout/>
    </s:layout>
    <fx:Declarations>
        <!-- 将非可视元素(例如服务、值对象)放在此处 -->
    </fx:Declarations>
   
    <fx:Script>
        <![CDATA[
            import com.adobe.serialization.json.JSON;
           
            import mx.collections.ArrayCollection;
           
            private var companyData:ArrayCollection = new ArrayCollection();
           
            private function init():void{
                var obj1:Object = new Object();
                obj1.id = 1;
                obj1.name = "节点";
                var arr2:Array = new Array();
                for(var i:int = 0; i < 10; i++){
                    var obj2:Object = new Object();
                    obj2.id = i;
                    obj2.name = "节点"+i;
                    arr2.push(obj2);
                }
                obj1.children = arr2;
                var str:String = JSON.encode(obj1);
                trace(str);
                this.studentTree.dataProvider = obj1;
            }
           
            /***
             *
             * 把点击的 对象 保存下来
             *
             * 然后把需要加入的数据去出来加入到对象中
             *
             * ********************************************************************
             *
             * 递归整个树找到点击的那个对象,把加入了数据的对象 覆盖 点击的对象 (或者是
             *
             * 数据源改变,树则跟着变  this.studentTree.expandChildrenOf(objSave, true);
             *
             * ********************************************************************
             * **/
            protected function studentTree_doubleClickHandler(event:MouseEvent):void
            {
                var objSave:Object = this.studentTree.selectedItem;
                var obj:Object = this.studentTree.selectedItem;
                               
                var arr2:Array = new Array();
                for(var j:int = 0; j < 6; j ++){
                    var obj1:Object = new Object();
                    obj1.id = j + 10;
                    obj1.name = "节点"+j+10;
                    arr2.push(obj1);
                }
                obj.children = arr2;       
               
                var str:String = JSON.encode(obj);
                trace(str);
               
                this.studentTree.expandChildrenOf(objSave, true);
               
            }

        ]]>
    </fx:Script>
   
   
    <s:Panel x="25" y="23" width="250" height="448" title="学生">
        <mx:Tree id="studentTree" left="0" top="0" width="100%" height="100%" labelField="name"
                 doubleClickEnabled="true" doubleClick="studentTree_doubleClickHandler(event)"/>
    </s:Panel>
</s:Application>

  • 1
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值