2011-07-13 7 views
0

J'essaie d'informer l'utilisateur dans l'écran de connexion si CapsLock est activé. Dans creationComplete Keyboard.capslock renvoie toujours false. Y at-il une solution de contournement pour cela? Voici ce que j'essaie:Flex Keyboard.capslock renvoie toujours false dans creationComplete

protected function application1_creationCompleteHandler(event:FlexEvent):void 
{ 
    callLater(setListener); 
} 

private function setListener():void 
{ 
    if (Keyboard.capsLock) 
    { 
     lblCapsLock.visible = true; 
    } 
    else 
    { 
     lblCapsLock.visible = false; 
    } 

    stage.addEventListener(KeyboardEvent.KEY_DOWN, application1_keyDownHandler); 
} 

protected function application1_keyDownHandler(event:KeyboardEvent):void 
{ 
    if (event.keyCode == Keyboard.CAPS_LOCK) 
    { 
     if (Keyboard.capsLock) 
     { 
      lblCapsLock.visible = true; 
     } 
     else 
     { 
      lblCapsLock.visible = false; 
     } 
    } 
} 

Il y a un bug signalé dans Adobe Bug et problème du système de gestion: http://bugs.adobe.com/jira/browse/FP-2033

Je me demande pourquoi il est dans l'état peut pas Reproduire

vieux sujet
+0

J'ai testé, ça semble être OK. Plutôt étrange ... BTW, juste un conseil pour optimeze votre code: lblCapsLock.visible = Keyboard.capsLock. –

+0

Pour moi ça ne marche pas. Si je clique sur la scène avant la fin de la création, l'étiquette sera affichée si les majuscules sont activées. Certains comment j'ai besoin de mettre l'accent sur Application, puis Keyboard.capsLock est vrai. –

+1

@ J.Lantinen, je pense que l'application a besoin de mise au point de l'OS pour pouvoir accéder au clavier. Est-ce vraiment un problème? Ne pourriez-vous pas ajouter un écouteur d'événement pour focusIn au lieu de creationComplete? Ou les deux? –

Répondre

1

mais cela peut aider quelqu'un ... trouvé avec le paramètre wmode défini sur transparent la valeur keyboard.capsLock est toujours false. Ou cela peut seulement être spécifique à swfobject.

Questions connexes