Esencialmente, tengo contenido flash que se desplaza en la rueda del mouse. Funciona bien, a menos que haya otro contenido en el navegador de modo que la barra de desplazamiento del navegador esté habilitada; cuando ese sea el caso, tanto la ventana del navegador COMO mi SWF se desplazan en la rueda del mouse. ¿Hay alguna forma de corregir este comportamiento?¿Cómo detener el desplazamiento simultáneo del navegador y la rueda del mouse SWF en AS3?
pregunta similares preguntó aquí:
disable mouse wheel scrolling while cursor over flex app?
que hace referencia a la solución de blogs sobre aquí:
http://www.spikything.com/blog/index.php/2009/11/27/stop-simultaneous-flash-browser-scrolling/
Pero la solución no funciona en todos los navegadores! Aunque funciona en algunos navegadores de Windows, no funciona en absoluto en Mac OS X: registra los eventos de la rueda del mouse en Firefox, pero no se activan en absoluto en Chrome y Safari.
Ahora sé que (según los documentos oficiales de Adobe InteractiveObject) la rueda del mouse solo se admite en sistemas Windows, pero el evento todavía se activa por defecto en Mac OS X. ¿Es este error de desplazamiento simultáneo el motivo por el que no es compatible? ?
Editar: añadiendo más información sobre solución anterior ...
Tenga en cuenta que la solución anterior utiliza básicamente ExternalInterface para enviar el siguiente JavaScript a la función "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);
Es esto gato al menos en el camino correcto, o hay una mejor solución (es decir, completamente funcional)?