Warning: file_get_contents(/data/phpspider/zhask/data//catemap/5/actionscript-3/6.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Actionscript 3 如何在Flash中获取ContextMenu目标_Actionscript 3 - Fatal编程技术网

Actionscript 3 如何在Flash中获取ContextMenu目标

Actionscript 3 如何在Flash中获取ContextMenu目标,actionscript-3,Actionscript 3,在我必须构建的flash应用程序中,我想知道上下文菜单的目标是什么,当我按住ctrl键单击时会显示它。 原因是:我创建了一个自定义上下文菜单,它只显示在它所属的精灵的某个区域上。所以似乎有什么东西“挡住了路” 有什么想法吗?谢谢 看看这里:() 要获取ContextMenuEvent的目标,您需要访问该事件的mouseTarget属性。调试该事件的最佳方法是在阶段级别使用单击处理程序 stage.addEventListener(MouseEvent.CLICK, stageClickHandl

在我必须构建的flash应用程序中,我想知道上下文菜单的目标是什么,当我按住ctrl键单击时会显示它。 原因是:我创建了一个自定义上下文菜单,它只显示在它所属的精灵的某个区域上。所以似乎有什么东西“挡住了路”

有什么想法吗?谢谢

看看这里:()


要获取ContextMenuEvent的目标,您需要访问该事件的mouseTarget属性。

调试该事件的最佳方法是在阶段级别使用单击处理程序

stage.addEventListener(MouseEvent.CLICK, stageClickHandler, true,
        int.MAX_VALUE, true);
useCapture
设置为
true
,以便其他对象无法“吞咽”事件,并将
priority
设置为
int.MAX_值,以便进行良好测量

在您的
stageClickHandler()
中:

现在单击没有显示上下文菜单的区域(当您希望它显示时),查看日志文件中打印的内容。通过检查
目标对象的
名称
属性、其父对象
等,可以对其进行一些检查


希望这能有所帮助。

请查看
contextMenuEvent
contextMenuOwner
属性。)

不幸的是,他根本没有得到比赛的机会,这正是他的问题。一个非后代对象挡道了。嗨,谢谢。不过,我一直在尝试这种方法。但是,结果不显示“阻塞”项。也许contextmenu有一个bug?p、 s:出于兴趣,为什么要将事件优先级设置为int.MAX_值?嗨,我发现了问题。加载的外部swf位于带有自定义上下文菜单的项的“顶部”。即使我将该swf的“mousenabled”和“mouseChildren”属性设置为false,我仍然无法让自定义菜单注册…请参阅:@blofeld使用
int.MAX\u VALUE
为事件处理程序赋予最高优先级(因此其他处理程序无法首先停止事件).我的回答对您调试问题有用吗?如果是,请“投票”或“接受”。
private function stageClickHandler(event:MouseEvent):void
{
    var targetObject:DisplayObject = event.target;

    trace("click target", targetObject);
}