Flash 如何获取已单击的listitem?

Flash 如何获取已单击的listitem?,flash,actionscript-3,events,contextmenu,Flash,Actionscript 3,Events,Contextmenu,我为我的列表制作了一个上下文菜单。对于代码,我有一个类似这样的函数: lmi5.addEventListener(ContextMenuEvent.MENU_ITEM_SELECT, function(e:ContextMenuEvent){ }); 我如何知道单击了哪个列表项 我希望e.mouseTarget是一个项目,但它是一个列表的CellRenderer。编辑: “e.mouseTarget”不是上下文菜单中的选定项,而是您右键单击的显示元素。我想您需要为上下文菜单中的每个项目添加

我为我的列表制作了一个上下文菜单。对于代码,我有一个类似这样的函数:

lmi5.addEventListener(ContextMenuEvent.MENU_ITEM_SELECT, function(e:ContextMenuEvent){

}); 
我如何知道单击了哪个列表项

我希望e.mouseTarget是一个项目,但它是一个列表的CellRenderer。

编辑:

“e.mouseTarget”不是上下文菜单中的选定项,而是您右键单击的显示元素。我想您需要为上下文菜单中的每个项目添加一个不同的事件侦听器函数,这样您就可以知道单击了其中的哪一个,例如:

var myContextMenu:ContextMenu new ContextMenu();
var item:ContextMenuItem = new ContextMenuItem("item 1");
var item2:ContextMenuItem = new ContextMenuItem("item 2");

myContextMenu.customItems.push(item);
myContextMenu.customItems.push(item2);

item1.addEventListener(ContextMenuEvent.MENU_ITEM_SELECT, item1_select_handler);
item2.addEventListener(ContextMenuEvent.MENU_ITEM_SELECT, item2_select_handler);

function item1_select_handler(e:ContextMenuEvent):void
{
  trace("item 1!!");
}

function item2_select_handler(e:ContextMenuEvent):void
{
  trace("item 2!!");
}

这将为您提供cellRenderer中包含的数据

哦,您编写了e.mouseMenu,我想这是一个打字错误。。。无论如何,我错了,“e.mouseTarget”不是上下文菜单中的项目,而是您右键单击的显示元素。您的代码位中的LMI5是什么?您应该将不同的“ContextMenuEvent.MENU\u ITEM\u SELECT”事件侦听器添加到contextMenu的每个项目,而不是上下文菜单本身。我现在就用工作代码更新我的答案。哎呀,这是个打字错误。我理解你的建议,但这种方法并不完全安全,我将不得不编写许多附加代码,因为当我在某个项目上按右键时,它没有被选中,只是当我将光标放在它上面时。我仍然希望有一种方法可以获得contextmenu单击的坐标,并将其转换为其下的项目。1119:通过静态类型flash的引用访问可能未定义的属性数据。显示:InteractiveObject。
var l:Object=(e.mouseTarget).data