2010-03-18 101 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;