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>
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值