Flex读取xml文件转换为ArrayCollection并转换成menuItem

IndexMenu.xml

<?xml version="1.0" encoding="UTF-8"?>
<root>
    <node name="资源系统">
        <leafNode id="1" name="项目库管理" level="2" menu_url="http://www.sina.com"/>
        <leafNode  id="2" name="规范库库管理" level="2" menu_url="" />
        <leafNode  id="3" name="仪器管理" level="2" menu_url=""/>
        <leafNode  id="4" name="药品管理" level="2" menu_url=""/>        
    </node>
    <node name="教学管理">
        <leafNode   name="用户管理模块" level="2" menu_url=""/>
        <leafNode  name="实验室教学辅助流程" level="2" menu_url=""/>
        <leafNode  name="实验项目选课" level="2" menu_url=""/>       
        <leafNode  name="网络课堂" level="2" menu_url=""/>
        <leafNode  name="内容管理模块" level="2" menu_url=""/>    
        <leafNode  name="网络交流" level="2" menu_url=""/>            
    </node>
    <node name="实验室管">
        <leafNode  name="资源预约" level="2" menu_url=""/>
        <leafNode  name="仪器赔偿" level="2" menu_url=""/>
        <leafNode  name="工作日志辅助管理" level="2" menu_url=""/>        
        <leafNode  name="财务辅助记录" level="2" menu_url=""/>        
    </node>
</root>

mainFrame.mxml

<mx:Application xmlns:mx               = "http://www.adobe.com/2006/mxml" >

 

<mx:HTTPService id           = "indexMenu" showBusyCursor = "true" 
                    method       = "POST"      url            = "xml/IndexMenu.xml" 
                    useProxy     = "false"     result         = "httpIndexMenuResult(event)" 
                    resultFormat = "e4x" />        

<mx:Script>
        <![CDATA[   

[Bindable]private var menuAC:ArrayCollection=new ArrayCollection();

public function init() : void
            {                  
                indexMenu.send();                              
                   
            }      

private function httpIndexMenuResult(event:ResultEvent):void
               {
                   var menuXml:XML=event.result as XML;
                    for (var i:int=0;i<menuXml.node.length();i++)
                    {
                        var obj:Object = new Object();
                        obj.name = menuXml.node[i].@name;
                        obj.level= "1";
                        menuAC.addItem(obj);
                        for (var j:int=0;j<menuXml.node[i].leafNode.length();j++)
                        {
                            var subObj:Object = new Object();  
                            subObj.name = menuXml.node[i].leafNode[j].@name;
                            subObj.level=menuXml.node[i].leafNode[j].@level;
                            subObj.menu_url=menuXml.node[i].leafNode[j].@menu_url; 
                            menuAC.addItem(subObj);
                        } 
                    }
                   
                   var nowVbox:VBox = new VBox();
                for(var k:int=0;k<menuAC.length;k++)
                {                        
                  var tempO:Object = menuAC.getItemAt(k);
                    if(tempO.level=="1")
                    {                                
                        var panel : Panel  = new Panel();                            
                        panel.percentWidth = 100 ;
                        panel.styleName = "leftPanelTemp" ;
                        panel.horizontalScrollPolicy = "off"
                        panel.verticalScrollPolicy   = "off"
                        
                        panel.title                  = tempO.name;                        
                        var vbox:VBox                 = new VBox();  
                        vbox.percentWidth = 100;
                        vbox.styleName = "leftVBox" ;                         
                        nowVbox                       = vbox;
                        
                        panel.addEventListener(MouseEvent.CLICK , MyEventDelegate.create(clickLeftMenu,panel)) ;                                
                        panel.height =25 ;                            
                        this.arrLeftPanel.push(panel) ;
                        panel.addChild(vbox);
                        this.leftVBox.addChild(panel);                                                             
                    }
                    else if(tempO.level=="2")
                    {                                    
                        var button:Button = new Button();                            
                        button.styleName  = "newButton";
                        button.label      = tempO.name;
                    //    button.id         = tempO.id;
                        button.width       = 125 ;                                
                        var obj:Object = new Object();                            
                        obj.menu_url   = tempO.menu_url;
                        
                        button.data = obj;  
                        nowVbox.addChild(button);  
                        if ( tempO.menu_url != null)
                        {
                            button.addEventListener(MouseEvent.CLICK, menuJumpTo);                                    
                        }                          
                    }
                }     
               }       

 public function menuJumpTo(event:MouseEvent):void
             {    
                var toUrl:String = (event.target as Button).data.menu_url;    
                navigateToURL(new  URLRequest(toUrl),"_blank");               
            }     

    ]]>
    </mx:Script>

<mx:Panel>

 <mx:VBox id="leftVBox" width="100%" height="100%" />

</mx:Panel>

</mx:Application>

你可能感兴趣的:(java,xml,Flex)