2011-02-02 72 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

弗蘭克