我确信这一定是一个常见的问题,但我在其他地方找不到答案。
我在长网页中嵌入了Flash对象。我在Flash中监听MOUSE_WHEEL事件,并相应地滚动我的Flash内容。但是,当我滚动Flash对象时,网页也会滚动。
有没有办法防止这种行为,即当Flash对象有焦点时锁定网页的滚动位置?我不想使用JavaScript。
答案 0 :(得分:4)
这是一个不需要JavaScript的优秀解决方案:
http://www.spikything.com/blog/index.php/2009/11/27/stop-simultaneous-flash-browser-scrolling/
(从技术上讲,它使用JavaScript,但JavaScript是由Flash注入的,因此您不需要自己向HTML页面添加任何内容。换句话说,您需要管理的唯一代码是AS3。) / p>
这似乎适用于我测试的每个浏览器。
答案 1 :(得分:3)
如果没有JavaScript,我不认为这是可能的。
每当Flash影片改变焦点时,您需要使用ExternalInterface从Flash影片与浏览器进行通信。
然后,在页面陷阱上有一个JavaScript函数并吃掉鼠标轮事件:
if (window.addEventListener)
/** DOMMouseScroll is for mozilla. */
window.addEventListener('DOMMouseScroll', handleWheelEvent, false);
/** IE/Opera. */
window.onmousewheel = document.onmousewheel = handleWheelEvent;
function handleWheelEvent(e){
e.preventDefault();
}