flex 帶按鈕的下拉菜單

直接代碼

定義一個Button組件

<?xml version="1.0" encoding="utf-8"?>
<s:Button xmlns:fx="http://ns.adobe.com/mxml/2009"
		  xmlns:s="library://ns.adobe.com/flex/spark"
		  xmlns:mx="library://ns.adobe.com/flex/mx"
		  click="showMenu(event)" fontWeight="normal">
		  
	<fx:Script>
		<![CDATA[
			import mx.controls.Menu;
			import mx.events.FlexEvent;
			import mx.events.MenuEvent;  //引入菜單事件
			
			private var menuPoint:Point=new Point();
			private var myMenu:Menu;
			public var menu:XML;
			
			public function showMenu(event:MouseEvent):void{
				this.myMenu=Menu.createMenu(this,menu,false);
				
				myMenu.labelField="@itemShowName";
				myMenu.addEventListener("itemClick", menuHandler);
				menuPoint.x=this.mouseX;
				menuPoint.y=this.mouseY;
				menuPoint=this.localToGlobal(menuPoint);
				myMenu.show(menuPoint.x, menuPoint.y);  //在鼠標處(通過座標計算得到)顯出菜單
				/* var but:Button=event.target as Button;
				myMenu.show(but.x,but.y); */
			}
			
			public function menuHandler(event:MenuEvent):void{
				dispatchEvent(new Event(event.item.@eventName,true,true));
			}
			
		]]>
	</fx:Script>
	
	<fx:Declarations>
		<!-- 將非可視元素(例如服務、值對象)放在此處 -->
	</fx:Declarations>
</s:Button>


 

發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章