chrome、ff下flash的mousewheel事件失效(wmode=transparent)

目前想到的解決方法,監聽頁面的鼠標中輪事件,然後回傳給flash

function addEvent(elem, type, handler) {
    type = type.replace(/^on/, '');
    if (elem.attachEvent) {
        elem.attachEvent('on' + type, handler);
    } else if (elem.addEventListener) {
        elem.addEventListener(type, handler, false);
    }
}
//支持非IE、firefox瀏覽器
!(function() {
    var swfEl = getEl('God_main');
    var ua = navigator.userAgent.toLowerCase();

    if (swfEl.addEventListener && !/(ie|opera)/.test(ua)) {
        var eventType = /firefox/.test(ua) ? 'DOMMouseScroll' : 'mousewheel';

        addEvent(swfEl, eventType, handleWheel);
    }
})();

function handleWheel(event) {
    var delta = /firefox/.test(navigator.userAgent.toLowerCase()) ? -event.detail : event.wheelDelta/40;

    var swfEl = getEl('swfId');

    swfEl.mouseWheel(delta);
}

AS中添加代碼:

ExternalInterface.addCallback('mouseWheel', mouseWheelCallback);
發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章