создание подменю в контекстном меню flex - PullRequest
0 голосов
/ 02 февраля 2011

Есть ли обходной путь для создания подменю в гибком контекстном меню, кроме остановки правой кнопки мыши в JavaScript.

С уважением,


Привет Фрэнк,

Да, я хочу создать подменю в контекстном меню. Можете ли вы помочь мне здесь.

С уважением,


Привет Фрэнк,

Мне нужно контекстное меню для приложения, а не для сетки данных.

В моем первоначальном вопросе фраза «кроме остановки правой кнопкой мыши из JavaScript» означает

"поймать правый клик в html, вызвать функцию javascript и через js вызвать функцию as".

Проект, который вы указали, выполняет вышеописанную процедуру. Я не хочу использовать это

процедура. Есть ли другой способ для достижения подменю в гибком контекстном меню. Не могли бы вы

скажите, пожалуйста, если да ..

С уважением, Arvind

1 Ответ

0 голосов
/ 02 февраля 2011

Да, есть.

Я не знаю, что именно вы имеете в виду под этим:

, кроме остановки правой кнопкой мыши из 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;
        }
    }
}

Получайте удовольствие

РЕДАКТИРОВАТЬ: Есть интересный проект здесь .Они ловят щелчок правой кнопкой мыши в html, вызывают функцию javascript, а через js вызывают функцию as.

К сожалению, ограничение FP или NativeMenu APi допускается только на уровне contextmenu.Читайте здесь

Фрэнк

...