2010-03-18 4 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; 
Смежные вопросы