注册 登录  
 加关注
   显示下一条  |  关闭
温馨提示!由于新浪微博认证机制调整,您的新浪微博帐号绑定已过期,请重新绑定!立即重新绑定新浪微博》  |  关闭

Flex 技术博客

醉里挑灯看剑,梦回吹角连营

 
 
 

日志

 
 

创建自定义右键菜单(customize your right click memu)  

2008-06-10 17:06:29|  分类: Flex 应用 |  标签: |举报 |字号 订阅

  下载LOFTER 我的照片书  |

在Flex开发过程中,可能很少有用户会需要添加右键菜单功能。
但是,一些习惯于桌面程序的人还是很希望能有右键菜单。这里给出一个右键菜单功能的例子,希望能给大家有所帮助。

在Flex中,我们可以简单的对ContextMenu对象进行更改,添加一些自己定义的菜单项。当然,很多人不希望显示系统默认的菜单,我们可以调用hideBuiltInItems()方法隐藏系统默认的菜单项,但是很不幸,我们并不能隐藏所有的系统菜单,看上面的图片我们知道还有4项菜单不能隐藏,这个是没办法的,Adobe这么做。
附上代码:

<?xml version="1.0" encoding="utf-8"?>

<!-- http://blog.flexexamples.com/2007/08/20/using-a-custom-context-menu-with-the-flex-datagrid-control/ -->

<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("View item...", true);

                cmi.addEventListener(ContextMenuEvent.MENU_ITEM_SELECT, contextMenuItem_menuItemSelect);

                cm = new ContextMenu();

                cm.hideBuiltInItems();

                cm.customItems = [cmi];

                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);

            }

        ]]>

    </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>

 


 

 

  评论这张
 
阅读(752)| 评论(0)
推荐 转载

历史上的今天

评论

<#--最新日志,群博日志--> <#--推荐日志--> <#--引用记录--> <#--博主推荐--> <#--随机阅读--> <#--首页推荐--> <#--历史上的今天--> <#--被推荐日志--> <#--上一篇,下一篇--> <#-- 热度 --> <#-- 网易新闻广告 --> <#--右边模块结构--> <#--评论模块结构--> <#--引用模块结构--> <#--博主发起的投票-->
 
 
 
 
 
 
 
 
 
 
 
 
 
 

页脚

网易公司版权所有 ©1997-2017