如何获取ContextMenuItem x和y坐标

时间:2011-01-14 12:04:58

标签: actionscript-3 flex4 flexbuilder

我建立一个上下文菜单我想要当用户点击任何项目然后我得到contextmenuitem的x和y坐标............ actully我想显示当用户点击时contextmenuitem的文本框infornt在项目........或任何其他解决方案,我将输入文本控件显示为contextmenuitem中的子菜单

2 个答案:

答案 0 :(得分:1)

我能想到做你要求的唯一方法是:

  • 禁止右键单击鼠标 使用javascript的html容器

  • 捕获右键单击事件和 将它们转发到闪存通道 ExternalInterface

  • 在方法中 从ExternalInterface触发, 做/显示你想要的东西。

有一些开源解决方案:

答案 1 :(得分:0)

为每个菜单项添加一个事件监听器。在侦听器函数中,事件的目标对象是您单击的对象 - 您需要做的就是将其强制转换为DisplayObject,并且可以访问x和y坐标:

contextmenuItem.addEventListener (MouseEvent.CLICK, onItemClick);

function onItemClick (ev:MouseEvent) : void {
   var item:DisplayObject = ev.target as DisplayObject;
   // use item.x and item.y to get the object's position.
}