代码之家  ›  专栏  ›  技术社区  ›  Cameron

在Flash对象内滚动时防止网页滚动

  •  2
  • Cameron  · 技术社区  · 16 年前

    我在一个长网页中嵌入了一个Flash对象。我在Flash中收听鼠标滚轮事件,并相应地滚动我的Flash内容。但是,当我在Flash对象上滚动时,网页也会滚动。

    是否有任何方法可以防止这种行为,即当Flash对象具有焦点时锁定网页的滚动位置?我不想使用JavaScript。

    2 回复  |  直到 16 年前
        1
  •  4
  •   mattstuehler    15 年前

    http://www.spikything.com/blog/index.php/2009/11/27/stop-simultaneous-flash-browser-scrolling/

    (从技术上讲,它确实使用JavaScript,但JavaScript是由Flash注入的,因此您不需要自己向HTML页面添加任何内容。换句话说,您需要管理的唯一代码是AS3)。

        2
  •  3
  •   Raleigh Buckner    16 年前

    我认为没有JavaScript这是不可能的。

    您需要使用从Flash电影到浏览器的通信 ExternalInterface 每当Flash电影改变焦点时。

    然后,在页面陷阱上使用JavaScript函数并执行mousewheel事件:

    if (window.addEventListener)
        /** DOMMouseScroll is for mozilla. */
        window.addEventListener('DOMMouseScroll', handleWheelEvent, false);
    /** IE/Opera. */
    window.onmousewheel = document.onmousewheel = handleWheelEvent;
    
    function handleWheelEvent(e){
        e.preventDefault();
    }