Bien que Flash ait une molette de souris ( Mouseevent.mouse_wheel a>), il vient avec assez de problèmes. P>
Le premier est que l'événement n'est pas encore pris en charge sur le Mac. Donc, il y a un tas de Solutions , tous (fondamentalement) Capturez l'événement de la souris (ou de Dommousescrolls) en JavaScript et passez-le dans l'application Flash. Heureusement, sous tous les navigateurs MAC, j'ai testé, cela fonctionne également lorsque Flash est en mode plein écran. P>
Problème 2 est que Flash ignore les événements de la molette de la souris avec de petites "Deltas". Par exemple, Microsoft's Smile Intellipoint avec" Smooth Scroll " provoque ce problème. Une solution à cela est la même que la solution pour le Mac ... I.e. Capturez l'événement JavaScript Mouse Wheole dans le navigateur et transmettez-le à l'application. La question est celle des navigateurs dans Windows que j'ai testé (Firefox, IE, Safari et Chrome), ils ne semblent pas capturer cet événement lorsque Flash est en mode plein écran. Est-ce que quelqu'un sait pourquoi ou comment résoudre ce problème? P>
J'ai actuellement une solution hybride qui prend toujours des événements à partir de JavaScript (en mode non-cruré ou en mode plein écran), sauf lorsqu'il est en mode plein écran sous Windows (auquel cela les prend à partir de l'événement Flash de la roue-mouse). Donc, les seules fois qu'il échoue est en mode plein écran sous Windows avec une souris qui a de petites deltas. Quelqu'un a-t-il une solution complète? Ou juste un meilleur? p>
5 Réponses :
Votre solution est l'une des meilleures. Un seul est préférable - n'utilisez pas la roue de la souris: ( p>
Adobe devrait faire quelque chose avec elle (et avec support pour d'autres contrôleurs). P>
Mouseevent.mouse_wheel semble fonctionner correctement sur Mac depuis gala bêta et 10,1 finale. Je peux déclencher des événements de la molette de la souris à l'aide de la souris magique et du pavé de piste de Safari et Chrome. P>
Pixelbreaker's Macmousewheel m'a donné à succès plein écran Faites défiler un Mac, mais je ne l'ai pas utilisé depuis un moment (sur Safari 5 par exemple). P>
L'inconvénient est qu'il capture des événements pour toute la page, vous perdrez donc défilement pour le HTML même si l'élément Flash n'est qu'une petite boîte à l'écran. P>
Mais vous pouvez fondamentalement basculer entre ce que vous avez déjà construit et ce qu'il utilise dans la macmousewheel.js lorsque vous avez activé l'écran complet. P>
espère que cela aide, bonne chance. p>
C'est un problème de connaissances sur le jira d'Adobe. Vous devez attendre quelque chose pour le réparer ou utiliser un autre événement à la place MouseEvent.mouse_wheel. Cela ne fonctionne pas sur Windows car l'implémentation Flash Player est complètement différente de Windows de Mac et de Linux. Mac et Linux utilisent GTK pour implémenter la poignée du plug-in. Sous Windows, il utilise une HWND Common Win32API, qui volez la mise au point sur le mode plein écran, ce qui entraîne la non-envoi d'événements de défilement sur le navigateur. Sur Mac et Linux, GTK étirez simplement la taille du plug-in dans la taille de bureau et ne faites pas de véritable écran plein écran. C'est un comportement GTK à l'intérieur de ces systèmes. Rien ne peut être fait. P>
Vous pouvez essayer d'utiliser la simple classe AS3 MacmouseWheelhandler à http://blog.earthbrowser.com/2009/01/simple-solution-for-mousewheel-evenants.html Ce qui le fait pour que vous n'ayez pas à intégrer avec Javascrpt. Il injecte le JavaScript à partir de ActionScript. P>