
Код AS3:
private function onMouseOver(ev:MouseEvent):void{
createMenu();
if (!origanalSet){
(1) prevMenu = AdvancedDataGrid(treeDataItem.owner).contextMenu;
origanalSet = true;
}
(2) AdvancedDataGrid(treeDataItem.owner).contextMenu = treeNodeMenu;
removeEventListener(MouseEvent.MOUSE_OVER, onMouseOver);
addEventListener(MouseEvent.MOUSE_OUT, onMouseOut);
}
Я работаю с AdvancedDataGrid, но думаю с листом можно в рендерере реализовать примерно такой же механизм.
При наведении мышки на компонент - генериться меню, затем это меню заменяет то контекстное меню, которое было у родительского компонента (AdvancedDataGrid). После чего удаляется слушатель MOUSE_OVER и добавляется слушатель MOUSE_OUT,

Код AS3:
private function onMouseOut(ev:MouseEvent):void{
AdvancedDataGrid(treeDataItem.owner).contextMenu = prevMenu;
addEventListener(MouseEvent.MOUSE_OVER, onMouseOver);
removeEventListener(MouseEvent.MOUSE_OUT, onMouseOut);
}