2010-08-24 7 views
0

il semble Flex trapKeys (e: KeyboardEvent) a des problèmes lorsque l'utilisateur appuie sur certaines marques spéciales; /? = +() & * avec des claviers non européens (européens). En appuyant sur ceux-ci nécessitent une touche Maj.problèmes avec KeyboardEvent et les caractères spéciaux nécessitant une touche Maj

J'utilise String.fromCharCode

Toutes les idées pourquoi par exemple en appuyant sur la combinaison de semicolor sorties défectueuses "<"

var key:String=String.fromCharCode(e.charCode); 

ici est une solution de contournement que j'utilise pour virgule maintenant

if ((e.charCode == 60) && (e.keyCode==188)) {key =';';} 
if ((e.charCode == 43) && (e.keyCode==187)) {key ='?';} 

Il y a aussi même problème avec cet événement FLASH

onKeyDownEvent (keyboardEvent: KeyboardEvent)

+0

Je pense que vous devez inclure 'KeyboardEvent.shiftKey' à votre EventHandler. Cette valeur booléenne est vraie si la touche shift est enfoncée, peut-être que cela pourrait vous aider? – hering

Répondre

0

Vous ne devez pas composer manuellement des caractères à partir de event.charCode ou de event.keyCode. La seule méthode correcte de saisie d'une chaîne par l'utilisateur consiste à placer le focus dans le champ de saisie et à obtenir le résultat de sa propriété text.

Vous pouvez rendre cette chaîne de saisie invisible et afficher cette entrée comme vous le souhaitez. Mais vous ne devriez pas composer de caractères d'entrée comme vous le faites.