flash – 如何在AS3中停止同时浏览器和SWF鼠标滚轮滚动?
本质上,我有滚动鼠标滚轮的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); 这只猫至少在正确的路径上,还是有更好的(即完全功能的)解决方案? 解决方法
我创建了一个小的lib,为您处理一切.它在默认的Flash播放器插件,Pepper闪存和MAC-OS上完美的工作(就我的测试而言).并且您不需要将任何.js文件添加到您的HTML文件夹
GIhub repo (编辑:李大同) 【声明】本站内容均来自网络,其相关言论仅代表作者个人观点,不代表本站立场。若无意侵犯到您的权利,请及时与联系站长删除相关内容! |