Warning: file_get_contents(/data/phpspider/zhask/data//catemap/9/javascript/373.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
Javascript Flex捕获应用程序上的所有鼠标点击_Javascript_Apache Flex_Actionscript - Fatal编程技术网

Javascript Flex捕获应用程序上的所有鼠标点击

Javascript Flex捕获应用程序上的所有鼠标点击,javascript,apache-flex,actionscript,Javascript,Apache Flex,Actionscript,我想捕获每个鼠标事件,并尝试将事件侦听器添加到FlexGlobals.topLevelApplication。然而,在某些情况下(比如Flex的菜单类),点击没有被捕获——可能在某个地方事件传播停止了。例如,在SystemManager.com中,我发现: addEventListener(MouseEvent.MOUSE_DOWN, mouseEventHandler, true, 1000); …这似乎超越了我的听众。我还尝试添加优先级为int.MAX_的侦听器,但没有成功 所以我的问题

我想捕获每个鼠标事件,并尝试将事件侦听器添加到FlexGlobals.topLevelApplication。然而,在某些情况下(比如Flex的菜单类),点击没有被捕获——可能在某个地方事件传播停止了。例如,在SystemManager.com中,我发现:

 addEventListener(MouseEvent.MOUSE_DOWN, mouseEventHandler, true, 1000);
…这似乎超越了我的听众。我还尝试添加优先级为int.MAX_的侦听器,但没有成功


所以我的问题是——我怎样才能捕捉到所有的鼠标点击,而不用担心我的事件会在某处停止?也许是javascript黑客?或者在没有机会取消的地方添加事件侦听器?谢谢。

您可以尝试将事件处理程序添加到带有捕获的阶段:

systemManager.stage.addEventListener(MouseEvent.MOUSE_DOWN, mouseEventHandler, true, Integer.MAX_VALUE);

我已经试过了。似乎事件在某个地方被捕获,然后被重新修补,这就是它不起作用的原因。我尝试将处理程序附加到systemManager,附加到systemManager.stage,有优先级和捕获,也有没有优先级和捕获,但似乎没有任何效果。这可能与焦点留在从显示列表中删除的元素上有关。我发现这描述了键盘事件处理的类似功能:不,没有帮助。仍然无法捕获所有事件。我正在寻找一个更通用的解决方案,而不是逐个处理所有问题-我只是以菜单为例。如果您同时添加了带捕获和不带捕获的EventListener,它是否有效?有些事件只参与捕获目标起泡阶段的某些部分。