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.
Code : Sélectionner tout - Visualiser dans une fenêtre à part
Application.application.addEventListener(KeyboardEvent.KEY_DOWN, shift);
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
document.getElementById('${application}').focus();
ç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
ArgumentError: Error #1063: Non-correspondance du nombre d'arguments sur plateau::Plateau/focus(). 0 prévu(s), 1 détecté(s).
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.

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.