2011-02-02 97 views
0

有任何解决方法在不是停止从JavaScript右键点击其他柔性上下文菜单来创建子菜单。创建子菜单在柔性上下文菜单

问候,


嗨弗兰克,

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

问候,


嗨弗兰克,

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

在我最初的问题那句“不是从JavaScript停止右键点击其他”是指

“赶在HTML中点击右键,调用JavaScript函数并在JS调用的函数。”

您已指定该项目确实上面的过程。我不想用这个

程序。是否有任何其他方式来实现弹性上下文菜单中的子菜单。你能

请如果是这样告诉我..

问候, 阿文德

+0

你需要的上下文菜单的应用程序或数据网格如?在Datagrid中,我已经实现了一个多级的contextmenu。 – Frank 2011-02-05 12:22:20

+0

嗨弗兰克, 我需要的上下文菜单的应用程序不是为数据网格。 在我最初的问题那句“不是从JavaScript停止右键点击其他”是指 “赶右键单击HTML,调用JavaScript函数并在JS调用的函数。“ 您指定做上述程序的项目,我不希望使用此 程序。是否有在Flex上下文菜单的子菜单取得任何其他方式。你能 请如果是这样告诉我。 。 问候,阿文德 – Arvind 2011-02-09 13:04:05

回答

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调用as函数。

不幸的是,FP或NativeMenu中的API限制只允许在水平文本菜单。阅读here

弗兰克