<?xml version="1.0"?>
<mx:Application xmlns:mx="http://www.adobe.com/2006/mxml" viewSourceURL="srcview/index.html">
<mx:Script>
<![CDATA[
import mx.controls.Menu;
import mx.events.MenuEvent;
[Bindable]
private var paths:Array;
private var menubarXML:XML =
<menuitems>
<menuitem label="File">
<menuitem label="New" data="1-1"/>
<menuitem label="Open" data="1-2"/>
</menuitem>
<menuitem label="Search">
<menuitem label="Search..." data="2-1"/>
<menuitem label="File..." data="2-2"/>
<menuitem label="Declaration">
<menuitem label="File" data="2-3-1"/>
<menuitem label="Project" data="2-3-2"/>
<menuitem label="WorkSpace" data="2-3-3"/>
</menuitem>
<menuitem label="References">
<menuitem label="File" data="2-4-1"/>
<menuitem label="Project" data="2-4-2"/>
<menuitem label="WorkSpace" data="2-4-3"/>
</menuitem>
</menuitem>
<menuitem type="separator"/>
<menuitem label="About" data="3"/>
</menuitems>;
private function addMenu():void {
paths = new Array();
var menu:Menu = Menu.createMenu(null, menubarXML, false);
menu.labelField="@label";
var pt:Point = new Point(25, 65);
pt = panel.localToGlobal(pt);
menu.show(pt.x, pt.y);
menu.addEventListener(MenuEvent.ITEM_CLICK, itemClickHandler);
}
private function itemClickHandler(event:MenuEvent):void{
findParent(event.item);
function findParent(xml:XML):void{
if(xml.parent()!=null){
findParent(xml.parent());
paths.push(xml.@label);
}
}
lblPath.text = paths.toString();
}
]]>
</mx:Script>
<mx:Panel id="panel" title="Menu"
paddingTop="10" paddingLeft="10" height="100%" width="100%">
<mx:Button id="btn" label="Show Menu" click="this.addMenu()" />
<mx:ApplicationControlBar>
<mx:Label id="lblPath"/>
</mx:ApplicationControlBar>
</mx:Panel>
</mx:Application>
核心代码位于itemClickHandler事件侦听函数中,我们这里使用了递归算法。
点击此处查看最终效果。
admin#flashas.net (#为@) 联系QQ:
:40777822
浙ICP备06033001号