有没有办法知道启动上下文菜单的父/组件?
我有一个包含不同自定义组件的面板。我想在用户右键单击相应组件时从上下文菜单中打开自定义组件的相应弹出窗口。
如何找到启动上下文菜单的父自定义组件?
代表:
custom compoent:1。Label,2。Buttom
上下文菜单项:属性
右键单击“标签”打开一个上下文菜单,其中包含项目“属性”,在单击属性时,它应打开自定义popoup窗口,显示Label的属性。 同样,对于Button。
我试图通过点击上下文菜单来监听事件,但它没用。
实现这一目标的正确方法是什么?
答案 0 :(得分:1)
尝试为ContextMenuEvent。MENU_SELECT添加一个侦听器,以添加到每个组件上的实际contextMenu
属性。在处理程序中,您可以执行以下操作:
protected function contextMenuEventHandler(cme:ContextMenuEvent):void
{
var props:ContextMenuItem = new ContextMenuItem("Properties");
props.addEventListener(ContextMenuEvent.MENU_ITEM_SELECT,
function (event:ContextMenuEvent):void
{
Alert.show(cme.mouseTarget.toString());
});
cme.contextMenuOwner.contextMenu.customItems.push(props);
}
这是一种做法。就个人而言,我通常会提前制作自定义上下文菜单,并在MXML中的每个组件上设置它们。但是,在某些情况下,动态执行此操作(如上所述)可能会更好。