2010-03-18 8 views
2

Je voudrais ajouter un menu contextuel personnalisé avec des séparateurs de ligne, mais ne peut pas vraiment comprendre comment. Ce que je dois:Personnalisé "menu contextuel" dans 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> 

Répondre

0

Si vous parlez d'un vrai menu contextuel (ceux qui apparaît à droite cliquez sur), vous pouvez utiliser la classe ContextMenu et ContextMenuItems.

Quelque chose comme ça (dans un bloc <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;