In sostanza, ho contenuti flash che scorre sulla rotellina del mouse. Funziona bene, a meno che non ci sia altro contenuto nel browser in modo tale che barra di scorrimento del browser è abilitato - quando è il caso, sia la finestra del browser e il mio SWF scorrimento sul rotellina del mouse. C'è un modo per correggere questo comportamento?Come fermare il browser simultanea e rotellina del mouse SWF lo scorrimento in AS3?
domanda simile chiesto qui:
disable mouse wheel scrolling while cursor over flex app?
che fa riferimento la soluzione bloggato su qui:
http://www.spikything.com/blog/index.php/2009/11/27/stop-simultaneous-flash-browser-scrolling/
Ma la soluzione non funziona su tutti i browser! Mentre si lavora su alcuni browser di Windows, non funziona affatto su Mac OS X - registra eventi rotellina del mouse in Firefox, ma non sono sempre sparato a tutti in Chrome e Safari.
Ora so che la ruota del mouse (secondo i documenti Adobe InteractiveObject ufficiale) è presumibilmente supportata solo su sistemi Windows, ma l'evento è ancora attivato per impostazione predefinita su Mac OS X. È questo bug di scorrimento simultaneo il motivo per cui non è supportato ?
Edit: aggiungere più informazioni soluzione di cui sopra ...
nota che la soluzione sopra utilizza fondamentalmente ExternalInterface di inviare il seguente JavaScript alla funzione "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);
È questo gatto almeno sulla strada giusta, o c'è una soluzione migliore (cioè pienamente funzionale)?