在flex上下文菜单中创建子菜单

时间:2011-02-02 06:56:37

标签: flex contextmenu submenu

是否有任何解决方法可以在flex上下文菜单中创建子菜单,而不是停止从javascript右键单击。

此致


嗨弗兰克,

是的,我想在上下文菜单中创建子菜单。你能帮帮我吗?

此致


嗨弗兰克,

我需要应用程序的上下文菜单而不是数据网格。

在我最初的问题中,“除了停止从javascript右键单击”之外的短语意味着

“在html中右键单击,调用javascript函数并通过js调用a函数。”

您指定的项目执行上述步骤。我不想用这个

过程。有没有其他方法可以在flex上下文菜单中实现子菜单。你能

吗?

请告诉我,如果是这样..

此致 Arvind的

1 个答案:

答案 0 :(得分:0)

是的,有。

我不知道,你对此的确切含义是什么:

  

除了停止右键单击   的JavaScript。

但是,如果要在子菜单中创建条目,请执行以下操作:

//Instance of my own class
private var myContext:myContextMenu = new myContextMenu();
application.contextMenu = myContext.myContextMenu;

//Here is the Class:
package com.my.components
{
    /* ////////////////////////////////////////////
    ///// My Context Menü /////////////////////
    ///////////////////////////////////////////////

    /////////////////////////////////////////////////////////////////////////////////
    //to use:                                                                      //
    // private var myContext:MyContextMenu = new MyContextMenu();                  //
    // init() in creationComplete                                                  //
    // application.contextMenu = myContext.myContextMenu;                          //
    ////////////////////////////////////////////////////////////////////////////// */


    import flash.display.Sprite;
    import flash.events.ContextMenuEvent;
    import flash.net.URLRequest;
    import flash.net.navigateToURL;
    import flash.text.TextField;
    import flash.ui.ContextMenu;
    import flash.ui.ContextMenuBuiltInItems;
    import flash.ui.ContextMenuItem;

    public class MyContextMenu extends Sprite
    {

        public var myContextMenu:ContextMenu;
        private var menuLabel:String = String.fromCharCode(169)+" My Company GmbH";

        public function MyContextMenu()
        {
            myContextMenu = new ContextMenu;
            removeDefaultItems();
            addCustomItems();
            myContextMenu.addEventListener(ContextMenuEvent.MENU_SELECT, menuSelectHandler);

            super();
        }

        private function removeDefaultItems():void
        {
            myContextMenu.hideBuiltInItems();
            var defaultItems:ContextMenuBuiltInItems = myContextMenu.builtInItems;
            defaultItems.print = true;
        }

        private function addCustomItems():void
        {
            var item:ContextMenuItem = new ContextMenuItem(menuLabel);
            myContextMenu.customItems.push(item);
            item.addEventListener(ContextMenuEvent.MENU_ITEM_SELECT,menuItemSelectHandler);
        }

        private function menuSelectHandler(event:ContextMenuEvent):void
        {
        }

        private function menuItemSelectHandler(event:ContextMenuEvent):void
        {
            navigateToURL(new URLRequest('http://www.my-company.de'));
        }

        private function createLabel():TextField
        {
            var txtField:TextField = new TextField();
            //txtField.text = textLabel;
            txtField.text = "RightClickHere";
            return txtField;
        }
    }
}

玩得开心

编辑: 有一个有趣的项目here。他们在html中捕获右键,调用javascript函数并通过js调用函数。

不幸的是,FP或NativeMenu APi的限制仅允许在级别上下文菜单中。阅读here

相关问题