捕获右键单击AS3

时间:2011-01-15 22:38:46

标签: actionscript-3 contextmenu right-click

是否可以在闪存(AS3)内部进行右键单击?

没有JQuery / JavaScript。

我需要在捕获右键时暂停游戏,所以我不想禁用上下文菜单,因为我只是想告诉右键单击已经发生。我可以添加一个EventListener吗?还有其他想法吗?

更新:
我需要触发事件,因为它们实际上是右击,而不仅仅是在上下文菜单消失之后。

3 个答案:

答案 0 :(得分:1)

只有两种方法可以捕获右键单击事件:

  1. 对于网络浏览器应用程序:Use JavaScript。您不能直接在Flash中执行此操作,因为您无法禁用上下文菜单。

  2. 对于桌面应用程序:部署为AIR应用程序。 AIR内置RIGHT_CLICK MouseEvent

  3. 没有第三步。 :(

    P.S:也就是说,如果menuSelect真的不适合你 - 文档说明在菜单打开之前它会被触发

答案 1 :(得分:1)

正如weltraumpirat报道的那样,捕获Right Click事件的唯一方法是,如果要将应用程序部署为AIR应用程序(如果要将其保留为Flash平台体系结构的原生应用程序),那么这种方法就是如此。否则你需要使用其他语言与Flash结合来捕获事件(即JavaScript)。

仅供参考,这是MouseEvent类的API参考,其中包含有关RightClick事件的信息:http://help.adobe.com/en_US/FlashPlatform/reference/actionscript/3/flash/events/MouseEvent.html

答案 2 :(得分:0)

没有Javascript! 是的它运作正常。

我告诉你: 如果您使用的是Flex-或Flash-Builder,则需要从根应用程序标记添加rightClick: 示例:<s:Applikation .... RightClick="appRightClick (event)"> 比你需要关闭contextmenu为空。

你添加bordercontainer或视图,而不是添加rightClick和任何rightClick函数,而不是你需要从mx.controls.Menu添加菜单,而menu1需要监听rightClick到appRightClick(事件)

因为它无法从Flash Player Contextmenu访问。

我希望这是因为你的flash applikation适用于rightClick:)