滚动Flash对象时阻止网页滚动

时间:2009-08-13 22:23:35

标签: html flash scroll

我确信这一定是一个常见的问题,但我在其他地方找不到答案。

我在长网页中嵌入了Flash对象。我在Flash中监听MOUSE_WHEEL事件,并相应地滚动我的Flash内容。但是,当我滚动Flash对象时,网页也会滚动。

有没有办法防止这种行为,即当Flash对象有焦点时锁定网页的滚动位置?我不想使用JavaScript。

2 个答案:

答案 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();
}