虽然 Flash 有一个鼠标滚轮事件(MouseEvent.MOUSE_WHEEL),但它带来了很多问题。
首先是 Mac 尚不支持该事件。所以有一堆解决方案,所有这些(基本上)都在javascript中捕获鼠标滚轮(或DOMMouseScroll)事件并将其传递给flash应用程序。幸运的是,在我测试过的所有 Mac 浏览器下,这在 flash 处于全屏模式时也有效。
问题 2 是 flash 忽略了具有小“增量”的鼠标滚轮事件。例如,Microsoft 的带有“Smooth Scroll”的 IntelliPoint 鼠标会导致此问题。对此的解决方案与 mac 的解决方案相同...即在浏览器中捕获 javascript 鼠标滚轮事件并将其传递给应用程序。问题是我测试的 Windows 中的浏览器(firefox,即 safari 和 chrome),当 flash 处于全屏模式时,它们似乎没有捕获此事件。有谁知道为什么或如何解决这个问题?
我目前有一个混合解决方案,它总是从 javascript 中获取事件(在非全屏或全屏模式下),除非它在 Windows 上处于全屏模式(此时它从 flash mousewheel 事件中获取它们)。因此,它唯一失败的情况是在 Windows 上使用具有小增量的鼠标处于全屏模式。有人有完整的解决方案吗?或者只是一个更好的?