По сути, у меня есть флэш-контент, который прокручивается колесиком мыши. Он работает нормально, если в браузере нет другого контента, такого как полоса прокрутки браузера - в этом случае и окно браузера, и мой SWF прокручиваются колесом мыши. Есть ли способ исправить это поведение?
Здесь задан аналогичный вопрос:
отключить прокрутку колесика мыши при наведении курсора на приложение Flex?
ссылается на решение, о котором написано в блоге здесь:
http: // www. spikything.com/blog/index.php/2009/11/27/stop-simporaryous-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);
Этот кот находится по крайней мере на правильном пути, или есть лучше (т.е.полнофункциональное) решение?