• 【设为首页】
  • 【收藏闪客居】
当前位置:主页>Flex>文章内容
  • 如何获取menu当前选择项的路径
  • 来源:RIA爱好者 作者:Flying 2008-04-02 【
<?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事件侦听函数中,我们这里使用了递归算法。

点击此处查看最终效果。




上一篇:Flex 五子棋游戏(附源码)   下一篇:Flex中固定DataGrid控件的横(horizontal),竖(vertical)网格线风格的例子)网格线风格
  • 用户名:新注册) 密码: 匿名评论
  • 评论内容:(不能超过250字,需审核后才会公布,请自觉遵守互联网相关政策法规)


FLASH源文件

Copyright © 2006-2008 flashas.net All Rights Reserved.
网站内容咨询: admin#flashas.net (#为@) 联系QQ:40777822 浙ICP备06033001号
(本网站最佳浏览解析度为1024*768, 建议使用IE 6.0或以上版本浏览器。)