Динамическое дерево в Flex - PullRequest
       0

Динамическое дерево в Flex

1 голос
/ 15 сентября 2011

Я хочу создать динамическое дерево, используя ленивую загрузку, каждый раз, когда я открываю папку, дерево отправляет http-запрос на сервер, в этом сценарии я использую только статический текст для проверки дерева, но получаюв метке корня весь текст XML, назначенный поставщику данных, затем, когда я открываю корневую папку, я получаю дочерние элементы с хорошими метками, а события openitem и closeitem не запускаются, как я могу заставить их работать, любая помощь приветствуется

        import flash.net.URLLoader;
        import flash.net.URLRequest;
        import flash.net.URLRequestMethod;
        import flash.net.URLVariables;

        import mx.collections.XMLListCollection;
        import mx.events.ListEvent;

        var origXML:XML;

        public function initList()
        {
            //tree.rootVisible = false;

            //TODO: Get this XML from a data service
            var origXMLString:String = "<node  isBranch=\"true\"><node>supernode1</node>" +
                "<node>supernode2</node>" +
        //"<node label=\"supernode2\" someProp=\"sdsdf \" isBranch=\"true\"/></node>" +
                //"<node label=\"supernode3\" someProp=\"sdsdf \" isBranch=\"true\"/></node>" +
                "</node>";

            origXML = new XML(origXMLString);
            tree.dataProvider = origXML;
        }
        public function open(event:Object)
        {
            var selectedNode:Object = event.node;

            var myXMLList:XMLList = new XMLList(selectedNode);

            //TODO: Get this XML from a data service based on the selected node.
            var newXMLString:String = "<childnode1 label=\"childnode1\" someProp=\"sdsdf \" isBranch=\"true\" />" +
                "<childnode2 label=\"childnode2\" someProp=\"sdsdf \" isBranch=\"false\" />" +
                "<childnode3 label=\"childnode3\" someProp=\"sdsdf \" isBranch=\"true\" />" ;

            var myNewXMLList:XMLList = new XMLList(newXMLString);

            selectedNode.setChildren(myNewXMLList);

        /*  myText1.text = selectedNode.toXMLString();
            myText2.text = myTree.dataProvider.source[0]; */
        tree.dataProvider = origXML;
        }

        public function close(event:Object)
        {
            var selectedNode:Object = event.node;

            var myXMLList:XMLList = new XMLList(selectedNode);

            removeAllDecendants(myXMLList);

        /*  myText1.text = selectedNode.toXMLString();
            myText2.text = myTree.dataProvider.source[0]; */
            tree.dataProvider = origXML;
        }

        public function removeAllDecendants(xmlList:XMLList)
        {
            var myDescendantXMLList:XMLList = xmlList.descendants();
            var myDecendentXMLListCollection:XMLListCollection = new XMLListCollection(myDescendantXMLList);
            myDecendentXMLListCollection.removeAll();
        }

        private function send_data():void { 

            var loader : URLLoader = new URLLoader();
            var request : URLRequest = new URLRequest("http://localhost/index.php" );
            // pass the post data
            request.method = URLRequestMethod.POST;
            var variables : URLVariables = new URLVariables();
            variables.s = "haha";
            request.data = variables;

            // add handlers
            loader.addEventListener(Event.COMPLETE, on_complete);
            loader.load(request); 
        //  userRequest.send(); 
        } 

        private function on_complete(e : Event):void{



        }



    ]]> 
</fx:Script> 
<mx:Tree id="tree" x="103" y="49" width="445" height="278" enabled="true"
         itemClose="close(event)" itemOpen="open(event)" selectedIndex="1"></mx:Tree>

1 Ответ

2 голосов
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...