本质上,我有滚动鼠标滚轮的Flash内容.它可以正常工作,除非浏览器中有其他内容,以便浏览器的滚动条被启用 – 在这种情况下,浏览器窗口和SWF都在鼠标滚轮上滚动.有没有办法纠正这种行为?
类似的问题在这里问:
disable mouse wheel scrolling while cursor over flex app?
其中引用了关于这里的文章:
http://www.spikything.com/blog/index.php/2009/11/27/stop-simultaneous-flash-browser-scrolling/
但解决方案不适用于所有浏览器!虽然它适用于某些Windows浏览器,但在Mac OS X上它根本不起作用 – 它在Firefox中注册鼠标滚轮事件,但在Chrome和Safari中并没有被触发.
现在我知道(按照官方的Adobe InteractiveObject文档)鼠标滚轮据称只在Windows系统上受支持,但Mac OS X上的默认情况仍然被触发.这个同时滚动的错误是不支持的原因吗?
请注意,上述解决方案基本上使用ExternalInterface将以下JavaScript发送到“eval”函数:
var browserScrolling; function allowBrowserScroll(value) { browserScrolling = value; } function handle(delta) { if (!browserScrolling) { return false; } return true; } function wheel(event) { var delta = 0; if (!event) { event = window.event; } if (event.wheelDelta) { delta = event.wheelDelta / 120; } else if (event.detail) { delta = -event.detail / 3; } if (delta) { handle(delta); } if (!browserScrolling) { if (event.preventDefault) { event.preventDefault(); } event.returnValue = false; } } if (window.addEventListener) { window.addEventListener('DOMMouseScroll',wheel,false); } window.onmousewheel = document.onmousewheel = wheel; allowBrowserScroll(true);