flex4 自定义右键菜单

来源:互联网 发布:mac迅雷怎么下电影 编辑:程序博客网 时间:2024/05/16 02:46
<?xml version="1.0" encoding="utf-8"?>  <mx:Application xmlns:mx="http://www.adobe.com/2006/mxml"          layout="vertical"          verticalAlign="middle"          backgroundColor="white"          creationComplete="init()">         <mx:Script>          <![CDATA[             import mx.controls.Alert;               [Bindable]             private var cm:ContextMenu;               private var alert:Alert;               private function init():void {                 var cmi:ContextMenuItem = new ContextMenuItem("菜单项", true);                 cmi.addEventListener(ContextMenuEvent.MENU_ITEM_SELECT, contextMenuItem_menuItemSelect);                 var cmi1:ContextMenuItem = new ContextMenuItem("菜单项1", false);                 cmi1.addEventListener(ContextMenuEvent.MENU_ITEM_SELECT, contextMenuItem_menuItemSelect1);                                  cm = new ContextMenu();                 cm.hideBuiltInItems();                 cm.customItems = [cmi,cmi1];                 cm.addEventListener(ContextMenuEvent.MENU_SELECT, contextMenu_menuSelect);             }               private function contextMenu_menuSelect(evt:ContextMenuEvent):void {                 dataGrid.selectedIndex = lastRollOverIndex;             }               private function contextMenuItem_menuItemSelect(evt:ContextMenuEvent):void {                 var obj:Object = dataGrid.selectedItem;                 alert = Alert.show("Property A: " + obj.@propertyA + "\n" + "Property B: " + obj.@propertyB, obj.@label, Alert.OK);             }             private function contextMenuItem_menuItemSelect1(evt:ContextMenuEvent):void {                 var obj:Object = dataGrid.selectedItem;                 alert = Alert.show("Property A: " + obj.@propertyA + "\n" + "Property B: " + obj.@propertyB, obj.@label, Alert.OK);             }         ]]>      </mx:Script>         <mx:XML id="itemsXML">          <items>              <item label="Item 1" data="i001" propertyA="Item 1.A" propertyB="Item 1.B" />              <item label="Item 2" data="i002" propertyA="Item 2.A" propertyB="Item 2.B" />              <item label="Item 3" data="i003" propertyA="Item 3.A" propertyB="Item 3.B" />              <item label="Item 4" data="i004" propertyA="Item 4.A" propertyB="Item 4.B" />              <item label="Item 5" data="i005" propertyA="Item 5.A" propertyB="Item 5.B" />              <item label="Item 6" data="i006" propertyA="Item 6.A" propertyB="Item 6.B" />              <item label="Item 7" data="i007" propertyA="Item 7.A" propertyB="Item 7.B" />              <item label="Item 8" data="i008" propertyA="Item 8.A" propertyB="Item 8.B" />          </items>      </mx:XML>         <mx:Number id="lastRollOverIndex" />         <mx:DataGrid id="dataGrid"              width="400"              dataProvider="{itemsXML.item}"               contextMenu="{cm}"               itemRollOver="lastRollOverIndex = event.rowIndex">          <mx:columns>              <mx:DataGridColumn id="labelCol"                      dataField="@label"                      headerText="Label:" />                 <mx:DataGridColumn id="propACol"                      dataField="@propertyA"                      headerText="Property A:" />                 <mx:DataGridColumn id="propBCol"                      dataField="@propertyB"                      headerText="Property B:" />          </mx:columns>      </mx:DataGrid>         <mx:Label text="{dataGrid.selectedItem.@label}" />     </mx:Application>  

下面这个例子给Flex的右键添加一个自定义的菜单,并且在点击菜单内容时,执行事件

var copyrightMenuItem:ContextMenuItem = new ContextMenuItem("菜单内容",true,true);<br>

copyrightMenuItem.addEventListener(ContextMenuEvent.MENU_ITEM_SELECT,function(e:ContextMenuEvent){    Alert.show((e.currentTargetas ContextMenuItem).caption);});var contextMenuCustomItems:Array = FlexGlobals.topLevelApplication.contextMenu.customItems;contextMenuCustomItems.push(copyrightMenuItem);

我使用的是Flex4,如果是Flex3,需要把var contextMenuCustomItems:Array = FlexGlobals.topLevelApplication.contextMenu.customItems;

替换为var contextMenuCustomItems:Array = application.contextMenu.customItems;


0 0
原创粉丝点击