在flex应用程序中禁用鼠标滚轮,将事件传递给浏览器

时间:2011-01-14 22:08:52

标签: flex mousewheel

我有一个全屏Flex应用程序,我希望用户能够使用浏览器滚动条滚动。我不需要在flex应用程序中使用鼠标滚轮,而flex似乎可以阻止鼠标滚轮事件。所以鼠标滚轮事件什么都不做。

2 个答案:

答案 0 :(得分:1)

您可以通过外部界面轻松完成此操作。每当您的swf收到MouseEvent.MOUSE_WHEEL事件时,请调用滚动页面的javascript函数。 jQuery可以为你做到这一点。

滚动事件在不同的浏览器/操作系统中的处理方式不同,因此您将不得不进行大量测试。例如,上次我检查过你实际上必须在OSX上将javascript中的滚动事件发送到flash中,如果你想让它们工作的话。这对你来说是个好消息,因为默认情况下滚轮应该在页面上工作(而不是swf)。

所以让我们简单:

  • 获取MouseEvent.MOUSE_WHEEL事件。
  • 使用滚动方向调出javascript
  • 使用jquery
  • 相应地移动页面
  • 如果用户正在运行OSX,则禁用所有这些
  • 测试狗屎

答案 1 :(得分:1)

如果您的目标是Flash Player 10或更高版本,则可以使用wmode =“direct”。鼠标滚轮事件将适用于Flash和浏览器。由于您没有在Flex应用程序中使用它们,因此鼠标滚轮几乎只是滚动页面。

适用于PC Chrome 17,Firefox 3.6和IE 8。