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>
Flex读取xml文件转换为ArrayCollection并转换成menuItem
最新推荐文章于 2017-03-11 07:43:21 发布