Bonjour à tous. Alors voilà j'ai débuté en Flex 3 depuis quelque jours. Pour me faire la main j'ai voulu programmer un démineur (pas de graphiques, juste un Grid avec des labels).
Comme il semble impossible d'utiliser le clic droit pour marquer les mines, j'ai pensé qu'un écouteur sur les évènements du clavier ferait l'affaire. J'ai donc mis mon écouteur au niveau de l'application.
J'ai un peu modifié mon javascript pour que l'application reçoive le focus au chargement grâce à:
Code : Sélectionner tout - Visualiser dans une fenêtre à part Application.application.addEventListener(KeyboardEvent.KEY_DOWN, shift);
ça fonctionne bien, jusqu'au moment ou je perd le focus à cause d'un Alt-tab, d'un clic sur un popup "Alert" etc. Là plus moyen de récupérer le focus. J'ai bien essayé de mettre un écouteur sur la perte du focus pour le ré-attribuer automatiquement à l'application mais ça provoque une erreur que je n'arrive pas à déchiffrer:
Code : Sélectionner tout - Visualiser dans une fenêtre à part document.getElementById('${application}').focus();
j'ai bien cherché sur internet en pensant que tout ceux qui ont programmé des jeux en flash ont du être confronté au même problème, mais j'ai pas trouvé de réponse satisfaisante, alors je m'adresse à vous.
Code : Sélectionner tout - Visualiser dans une fenêtre à part ArgumentError: Error #1063: Non-correspondance du nombre d'arguments sur plateau::Plateau/focus(). 0 prévu(s), 1 détecté(s).
Merci de vous intéresser à mon problème
EDIT: en poursuivant mes recherches je suis tombé sur cet article , il fallait tout simplement mettre un écouteur sur l'event clic et réattribuer le focus à l'application.
Partager