2009-09-25 8 views
8

Procédure pour reproduire:Flex: Impossible onglet entre les contrôles sur une fenêtre modale

  1. Créer un popup modal au popup avec PopUpManager (le mien est un groupe avec un récipient skinnable à l'intérieur de celui-ci)
  2. composantes du champ Put (textinputs) dans la fenêtre contextuelle modale
  3. Tentative de tabulation entre les contrôles

commutateurs tab aux commandes derrière le modal-popup et ne tient pas compte du fait que le modal est là. La boucle de tabulation contient uniquement les contrôles derrière le modal.

J'ai tout essayé depuis la définition de tabChildren à hasFocusableChildren. Je ne peux pas implémenter IFocusManager comme c'est Halo et mon modal est un groupe Spark, mais cela fonctionnerait-il dans une certaine mesure? Il semble vraiment que Flex ignore simplement le modal dans son focusmanager.

Répondre

3

Ce n'est pas un bug, je suppose que c'est par conception.

Le groupe est censé être un conteneur léger - juste pour regrouper les choses ensemble. Le groupe n'implémente pas l'interface IFocusManagerContainer. SkinnableContainer (ou plus exactement SkinnableContainerBase) implémente cette interface, et c'est pourquoi la tabulation fonctionne quand vous l'utilisez avec PopupManager.

0

Pouvez-vous essayer d'utiliser TitleWindow au lieu d'un groupe avec un conteneur skinnable? Nous utilisons TitleWindow tout le temps et il fait correctement l'onglet.

+0

L'utilisation de composants d'allumage que nous utilisons Flex 4. Je vais essayer d'enlever le SkinnableContainer, et peut-être essayer une fenêtre de titre, et vous permettra de connaître les résultats des expériences. –

+0

Utilisation de Flex 4? Ne devriez-vous pas soumettre un rapport de bug puisqu'il n'est pas encore sorti? –

+0

Mise à jour: FIXE (un peu). Ceci est uniquement dû au fait que mon composant racine est un s: Group. Je l'ai changé en un SkinnableContainer et je n'ai plus eu de problèmes de tabulation. Je préférerais comprendre comment utiliser un groupe dans cette capacité, mais pour l'instant, un conteneur skinnabl fera l'affaire. –