2011-09-15 9 views
1

私は遅延ロードを使用して動的なツリーを作成したい、フォルダを開くたびにツリーがサーバーにHTTPリクエストを送信する、このスクリプトでは静的なテキストを使ってツリーをテストしているが、私はルートのラベルにすべてのXMLテキストをdataproviderに割り当てられています。次に、ルートフォルダを開くと、ラベルが適切な子を取得し、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> 

答えて

関連する問題