javascript - Flash:在全屏模式下使用鼠标滚轮事件(Windows 和 Mac)

标签 javascript flash actionscript-3 fullscreen mousewheel

虽然 Flash 有鼠标滚轮事件 ( MouseEvent.MOUSE_WHEEL ),但它也有很多问题。

首先是 Mac 上尚不支持该事件。所以有一堆solutions ,所有这些(基本上)在 javascript 中捕获鼠标滚轮(或 DOMMouseScroll)事件并将其传递到 Flash 应用程序中。幸运的是,在我测试的所有 Mac 浏览器下,这在 Flash 处于全屏模式时也有效。

问题 2 是 flash 忽略带有小“增量”的鼠标滚轮事件。例如微软的IntelliPoint Mice with "Smooth Scroll"导致这个问题。对此的解决方案与 mac 的解决方案相同......即在浏览器中捕获 javascript 鼠标滚轮事件并将其传递给应用程序。问题是我测试过的 Windows 浏览器(firefox,即 safari 和 chrome),当 flash 处于全屏模式时,它们似乎没有捕捉到这个事件。有谁知道为什么或如何解决这个问题?

我目前有一个混合解决方案,它总是从 javascript(在非全屏或全屏模式下)获取事件,除非它在 ​​Windows 上处于全屏模式(此时它从 flash mousewheel 事件获取它们)。因此它唯一失败的情况是在 Windows 上使用具有小增量的鼠标在全屏模式下。有人有完整的解决方案吗?或者只是一个更好的?

最佳答案

这是 adobe 的 JIRA 上的一个已知问题。您需要等待他们修复它,或者使用另一个事件代替 MouseEvent.MOUSE_WHEEL。它不适用于 Windows,因为 Flash Player 的实现在 Windows 中与 Mac 和 Linux 完全不同。 Mac 和 Linux 使用 GTK 来实现插件句柄。在 Windows 上,它使用 Win32API Common HWND,它窃取了全屏模式的焦点,导致浏览器上不调度滚动事件。在 Mac 和 Linux 上,GTK 只是将插件大小拉伸(stretch)到桌面大小,而不是真正的全屏显示。这是这些系统中的 GTK 行为。什么也做不了。

关于javascript - Flash:在全屏模式下使用鼠标滚轮事件(Windows 和 Mac),我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/1569681/

相关文章:

javascript - 网页图像预览器

c# - 使用 C# 创建带有嵌入式 SWF 和 FlashVars 的 PDF

php - 将数组从 Flash 传递到 PHP

actionscript-3 - 在 AS3 中设置动画片段的宽度/高度

javascript - 如何在Javascript中使用file_get_contents和json_decode

javascript - 我无法设法将此 JSON 数据放入 DataTables 中

javascript - 使用 x y 坐标绘制半圆周围的点

javascript - JQuery SlideDown() 延迟了单词的后半部分

actionscript-3 - 在 adobe air 中解压本地文件

android - 从 ActionScript3 中的 If 语句中跳出?