2010-03-18 23 views
2

我想用行分隔符添加一個自定義上下文菜單,但無法真正弄清楚如何。我需要什麼:flex中的自定義「上下文菜單」

<mx:List id="treeContextFile" visible="false" width="233" verticalScrollPolicy="off" includeInLayout="false"> 
     <mx:dataProvider> 
      <mx:Array > 
       <mx:String>Open</mx:String> 
       <horizontal line here > 
       <mx:String>Cut</mx:String> 
       <mx:String>Copy</mx:String> 
       <mx:String>Paste</mx:String> 
       <horizontal line here > 
       <mx:String>Rename</mx:String> 
       <mx:String>Delete</mx:String> 
       <horizontal line here > 
       <mx:String>Properties</mx:String> 
      </mx:Array> 
     </mx:dataProvider> 
    </mx:List> 

回答

0

如果你談論的是一個真正的上下文菜單(那些顯示了右單擊),您可能需要使用ContextMenu和ContextMenuItems類。

類似的東西(在<mx:Script>塊):

var cmiOpen :ContextMenuItem = new ContextMenuItem("Open"); 
    var cmiCut :ContextMenuItem = new ContextMenuItem("Cut", true); 
    var cmiCopy :ContextMenuItem = new ContextMenuItem("Copy"); 
    var cmiPaste :ContextMenuItem = new ContextMenuItem("Paste"); 
    var cmiRename:ContextMenuItem = new ContextMenuItem("Rename", true); 
    var cmiDelete:ContextMenuItem = new ContextMenuItem("Delete"); 
    var cmiProps :ContextMenuItem = new ContextMenuItem("Properties"); 

    var cm:ContextMenu = new ContextMenu(); 
     cm.addItem(cmiOpen); 
     cm.addItem(cmiCut); 
     cm.addItem(cmiCopy); 
     cm.addItem(cmiPaste); 
     cm.addItem(cmiRename); 
     cm.addItem(cmiDelete); 
     cm.addItem(cmiProps); 

    cmiOpen.addEventListener(ContextMenuEvent.MENU_ITEM_SELECT, openFunction); 
    cmiCut.addEventListener(ContextMenuEvent.MENU_ITEM_SELECT, cutFunction); 
    ... 

    yourComponent.contextMenu = cm;