2009-10-12 11 views
0

(Ceci est une question pour Flash 9/10 AS3.)Comment régler manuellement le focus dans AS3 pour que la molette de la souris fonctionne?

J'essaie de résoudre un problème où l'utilisateur doit cliquer sur une zone avant de commencer à recevoir les événements de la molette de la souris.

Je suppose que le focus est réglé ailleurs donc dans le ctor pour mon MovieClip qui demande des événements, je dis "stage.focus = this". Cela devrait fonctionner, à en juger par les recherches sur le Web que j'ai faites. Mais ce n'est pas le cas. Je dois encore cliquer sur le clip avant qu'il ne commence à entendre les événements de la molette de la souris.

Que pourrais-je faire de mal ici? Ceci est un élément AS3 de base dans l'IDE Flash, passant par l'IDE comme un test (pas encore hébergé sur une page web), pas de Flex, pas de composants ..

Les événements de la roue se passent bien et fonctionnent parfaitement, mais je vouloir éviter d'avoir à faire ce premier clic.

+0

Entend-il d'autres événements de souris? – MichaelJW

+0

Ouais, je reçois MOUSE_OVER, MOUSE_MOVE, MOUSE_OUT. Aucun événement de roue jusqu'à ce que je clique sur quelque chose. – scobi

Répondre

2

stage.focus est pour keyboard focus. Définissez tabEnabled = true; pour l'image-objet correspondante, puis appuyez sur l'onglet pour mettre l'objet d'affichage en évidence. Vous pouvez définir stageFocusRect = false; pour éviter d'afficher un rectangle jaune autour de l'objet d'affichage ciblé.

0

Etes-vous sûr que le navigateur a le focus et le film a le focus? Dans certains cas, nous avons dû utiliser un simple javascript pour mettre l'accent sur le MovieClip. Par exemple, si votre Flash a l'identifiant 'flashVideo', un simple document.getElementById('flashVideo').focus() peut faire le travail. Vous pouvez faire un meilleur travail en utilisant un framework javascript pour vous assurer que vous exécutez votre code lorsque le DOM est prêt. Par exemple, dans jQuery vous pouvez utiliser quelque chose comme ceci:

jQuery(document).ready(function(){ 
    jQuery('#flashVideo').focus(); 
}) 
+0

Je ne suis actuellement même pas tester dans un navigateur. Juste par ctrl-entrer de l'IDE Flash. Ainsi, à partir du lecteur Flash autonome. – scobi

Questions connexes