По сути, у меня есть флэш-контент, который прокручивается на колесе мыши.Он работает нормально, если в браузере нет другого контента, такого как полоса прокрутки браузера - в этом случае и окно браузера И моя прокрутка SWF на колесе мыши.Есть ли способ исправить это поведение?
Подобный вопрос, заданный здесь:
отключить прокрутку колесика мыши при наведении курсора на приложение flex?
, на который ссылаетсяРешение о блогах здесь:
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);
Эта кошка, по крайней мере, на правильном пути, или есть лучшее (то есть полностью функциональное) решение?