J'ai une question (j'espère) rapide. J'ai des boites de stepper. Bien que cela puisse vraiment s'appliquer à n'importe quel composant interactif. Je veux que la case sélectionnée perde le focus quand je clique n'importe où ailleurs (scène incluse). Y a-t-il un moyen facile de faire ceci? Je n'arrive pas à trouver un moyen efficace de le faire perdre de vue.Flex: Lose Focus sur les composants
Répondre
Dans le cas où quelqu'un d'autre trouve leur chemin ici à la recherche d'une solution à ce problème, voici la réponse:
private function onGlobalMouseUp(event : MouseEvent) : void {
var fm:FocusManager = new FocusManager(stage);
//Since Flash Player can set focus on subcomponents as well as on components themselves,
//findFocusManagerComponent is used to find the component that either has focus or contains the subcomponent
//that has focus. If, for example, a TextField contained within a TextArea component has focus, findFocusManagerComponent
//will return the TextArea component, and not the TextField. This being the case, we can definitely determine
//whether the target object of the MouseUp event is a component (or is part of a component). If the target
//object is NOT a component (nor contained within one), then we clear all component focus.
if(fm.findFocusManagerComponent(event.target as InteractiveObject) is UIComponent){
//target of MouseUp is either a UIComponent, or is contained within a UIComponent, so do nothing.
}else{
//target of MouseUp is neither a UIComponent, nor is it contained within a UIComponent, so set component focus to null.
fm.setFocus(null);
}
}
Vous devriez peut-être vérifier FocusManager.hideFocus()
. Peut-être lier dans l'événement focusOut de votre UIComponent.
Peut-être que je ne comprends pas, mais je ne suis pas seulement intéressé à cacher l'indicateur. Si je le cache et qu'il est toujours sélectionné, alors d'autres interactions comme frapper les flèches haut et bas feront incrémenter ou décrémenter un stepper. Je veux désélectionner les composants sélectionnés. – grey
Alors, voici la solution que je suis venu avec ça fonctionne très bien. J'ai une fonction appelée add()
qui a été assignée à applicationComplete
. Dans cette fonction, j'inclure:
this.skin.addEventListener(MouseEvent.MOUSE_UP, loseFocus);
Quels sont les appels:
private function loseFocus(e : MouseEvent) : void
{
if (e.eventPhase == EventPhase.AT_TARGET)
{
this.focusManager.deactivate();
}
}
assez simple, et fait ce que je cherchais. Le filtre "Phase" est nécessaire pour empêcher les autres composants d'enregistrer les clics.
Remarque importante: this.skin
doit être la cible de l'événement. La scène n'est jamais exposée à la souris dans une application Flex.
Si quelqu'un a une meilleure solution, s'il vous plaît suggérer un!
Vous l'avez cloué :) Merci! – mik
- 1. Didacticiel sur les composants personnalisés Flex
- 2. Passer les données entre les composants flex
- 3. Visibilité des composants Flex sur l'application
- 4. Comment utiliser bmpdata.draw (composant); sur les composants Flex 4 SPARK?
- 5. Étendre l'image sur plusieurs composants dans Flex
- 6. Flex Drag n drop entre les composants
- 7. Miniatures pour les composants mxml dans Flex
- 8. communication des composants Flex
- 9. Flex: Changement de composants
- 10. Composants personnalisés Flex
- 11. Communication Flex pour les composants personnalisés
- 12. Traversée de focus dans les composants d'un éditeur de cellules
- 13. HTML et Flex Focus Problème
- 14. flex REGAIN perdu le focus
- 15. lose octets de programmation Socket
- 16. Composants Flash avec Flex SDK
- 17. Liste visuelle des composants Flex
- 18. membre ThreadStatic valeur lose sur chaque chargement de la page
- 19. Evénements de composants Adobe Flex
- 20. Flex: empêche la surbrillance sur l'objet avec focus?
- 21. Flex Composants créés dynamiquement ajoutés aux composants personnalisés
- 22. Documentation sur les composants JVCL
- 23. Événement Click-outside sur des composants personnalisés dans flex
- 24. Flex TextInput Clic gauche - Parent Steals Focus
- 25. Flex: l'évolution des styles de composants Flex AS3
- 26. Assurez-vous que les composants Flex sont chargés au début
- 27. Comment répartir l'événement entre les composants dans Flex?
- 28. Flex: MX + Sparks contre les composants MX uniquement
- 29. J'ai besoin d'aide pour styliser les composants FormItem dans Flex
- 30. passer des valeurs entre les composants personnalisés dans Flex - mxml
Il ne perd pas automatiquement le focus lorsque vous cliquez ailleurs? – JeffryHouser
Pas aussi loin que je peux gérer. Si je clique sur n'importe où ailleurs, une fois que j'ai un composant sélectionné, je peux seulement sélectionner un autre composant. Je ne peux pas désélectionner tous les composants en cliquant sur la scène. – grey