【问题标题】:Catch Right-Click AS3抓住右键单击 AS3
【发布时间】:2011-01-15 22:38:46
【问题描述】:

是否可以在 Flash (AS3) 中捕获右键单击?

没有 JQuery/JavaScript。

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

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

【问题讨论】:

标签: actionscript-3 contextmenu right-click


【解决方案1】:

捕获右键事件只有两种方式:

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

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

没有第三步。 :(

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

【讨论】:

    【解决方案2】:

    正如 weltraumpirat 报告的那样,捕获右键单击事件的唯一方法是,如果您要构建应用程序以将其部署为 AIR 应用程序,并且您希望将其全部保留为 Flash 平台架构的原生应用程序;否则,您将需要结合 Flash 使用其他语言来捕获事件(即 JavaScript)。

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

    【讨论】:

      【解决方案3】:

      没有Javascript! 是的,它工作正常。

      我告诉你: 如果您使用 Flex- 或 Flash-Builder,则需要从根应用程序标签添加 rightClick: 例如:<s:Applikation .... RightClick="appRightClick (event)"> 比您需要将上下文菜单关闭为空。

      并且您添加边框容器或视图而不是使用任何 rightClick 功能添加 rightClick,而不是您需要从 mx.controls.Menu 添加菜单,并且 menu1 需要侦听 rightClick 到 appRightClick(事件)

      因为它不能从 Flash Player 上下文菜单访问。

      我希望它是因为您的 flash 应用程序适用于 rightClick :)

      【讨论】:

      • 我想在普通的 AS3 中而不是在 FLEX 中进行
      • 不,看看我的解决方案 :) stackoverflow.com/questions/22259135/…
      • 哇,太棒了,非常感谢!我不确定他们是否会允许提交……您能想出一个问题来发布,然后发布该答案作为该问题的解决方案吗?现在只是一篇博文。
      • 不客气 :) 我希望你可以使用 MX 版本开发我在 Flec Applikation 上的简单右键单击。这很容易。 :)
      猜你喜欢
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2012-11-06
      • 1970-01-01
      • 1970-01-01
      • 2011-01-11
      • 2020-11-21
      相关资源
      最近更新 更多