尽管Flash有一个鼠标滚轮事件(MouseEvent.MOUSE_WHEEL),但它存在许多问题。
首先,该事件尚未在Mac上得到支持。因此,有许多solutions,所有这些解决方案(基本上)都捕获javascript中的鼠标滚轮(或DOMMouseScroll)事件,并将其传递到flash应用程序中。幸运的是,在我测试的所有Mac浏览器下,当Flash处于全屏模式时,这也可以正常工作。
问题2是Flash忽略小“delta”的鼠标滚轮事件。例如,Microsoft的IntelliPoint Mice with "Smooth Scroll"会导致这个问题。解决方法与mac相同...即在浏览器中捕获javascript鼠标滚轮事件并将其传递给应用程序。问题是,在我测试的windows浏览器(firefox,ie,safari和chrome)中,当flash处于全屏模式时,它们似乎无法捕获此事件。有人知道为什么或如何解决吗?
我目前有一个混合解决方案,它始终从javascript中获取事件(在非全屏或全屏模式下),除非它在Windows上处于全屏模式(此时从flash鼠标滚轮事件获取)。因此,它失败的唯一时间是在Windows上的全屏模式中使用具有小delta的鼠标。有人有完整的解决方案吗?或者只是一个更好的解决方案?
首先,该事件尚未在Mac上得到支持。因此,有许多solutions,所有这些解决方案(基本上)都捕获javascript中的鼠标滚轮(或DOMMouseScroll)事件,并将其传递到flash应用程序中。幸运的是,在我测试的所有Mac浏览器下,当Flash处于全屏模式时,这也可以正常工作。
问题2是Flash忽略小“delta”的鼠标滚轮事件。例如,Microsoft的IntelliPoint Mice with "Smooth Scroll"会导致这个问题。解决方法与mac相同...即在浏览器中捕获javascript鼠标滚轮事件并将其传递给应用程序。问题是,在我测试的windows浏览器(firefox,ie,safari和chrome)中,当flash处于全屏模式时,它们似乎无法捕获此事件。有人知道为什么或如何解决吗?
我目前有一个混合解决方案,它始终从javascript中获取事件(在非全屏或全屏模式下),除非它在Windows上处于全屏模式(此时从flash鼠标滚轮事件获取)。因此,它失败的唯一时间是在Windows上的全屏模式中使用具有小delta的鼠标。有人有完整的解决方案吗?或者只是一个更好的解决方案?