| Version du langage: | ActionScript 3.0 |
| Versions du moteur d'exécution: | AIR 1.0 Flash Player 9.0.28.0 |
La classe FocusManager gère le focus pour un ensemble de composants parcourus à l'aide de la souris ou du clavier dans une
boucle de tabulation.
La navigation à l'intérieur d'une boucle de tabulation se fait généralement à l'aide de la touche de tabulation ; le focus passe d'un composant à un autre dans la boucle de navigation en décrivant un cercle, le focus passant du premier composant au dernier pour revenir au premier. Une boucle de tabulation comprend tous les composants, ainsi que les composants d'un conteneur compatibles avec une action de tabulation. Un application peut contenir de nombreuses boucles de tabulation.
Une occurrence de FocusManager est responsable d'une seule boucle de tabulation ; même si une application principale est toujours associée à au moins une occurrence de FocusManager, une application utilise plusieurs occurrences de FocusManager pour gérer chaque boucle de tabulation qu'elle contient. Une application peut nécessiter d'autres occurrences de FocusManager si elle comprend une fenêtre contextuelle qui, par exemple, contient distinctement une ou plusieurs boucles de tabulation de composants.
Tous les composants susceptibles d'être gérés par une occurrence de FocusManager doivent implémenter l'interface fl.managers.IFocusManagerComponent. Les objets dont le focus est géré par Flash Player ne sont pas tenus d'implémenter l'interface IFocusManagerComponent.
La classe FocusManager gère également l'implémentation du bouton par défaut. Un bouton par défaut distribue un événement click lorsque l'utilisateur appuie sur la touche Entrée dans un formulaire, selon l'emplacement du focus à cet instant. Le bouton par défaut ne distribue pas d'événement click si le focus se trouve dans une zone de texte ou si une valeur est en cours de modification dans un composant (par exemple, ComboBox ou NumericStepper).
Consulter les exemples
defaultButton:Button [lecture-écriture]
| Version du langage: | ActionScript 3.0 |
| Versions du moteur d'exécution: | AIR 1.0 Flash Player 9.0.28.0 |
Obtient ou définit le bouton par défaut actuel.
Le bouton par défaut correspond au bouton d'un formulaire qui distribue un événement click lorsque l'utilisateur appuie sur la touche Entrée, en fonction de l'emplacement du focus à cet instant.
Implémentation public function get defaultButton():Button public function set defaultButton(value:Button):voiddefaultButtonEnabled:Boolean [lecture-écriture]
| Version du langage: | ActionScript 3.0 |
| Versions du moteur d'exécution: | AIR 1.0 Flash Player 9.0.28.0 |
Récupère ou définit une valeur indiquant si le bouton par défaut est activé. Si cette valeur est définie sur true, le gestionnaire de focus surveille la touche Entrée et distribue un événement click au bouton par défaut si l'utilisateur appuie sur la touche Entrée au moment où un composant autre qu'un bouton détient le focus. Si cette valeur est définie sur false, le gestionnaire de focus ne surveille pas la touche Entrée. Les composants qui utilisent la touche Entrée définissent cette propriété sur false pour empêcher la distribution d'un événement click sur le bouton par défaut, dans le cas où il en existe un, lorsque l'utilisateur appuie sur la touche Entrée.
Implémentation public function get defaultButtonEnabled():Boolean public function set defaultButtonEnabled(value:Boolean):voidnextTabIndex:int [lecture seule]
| Version du langage: | ActionScript 3.0 |
| Versions du moteur d'exécution: | AIR 1.0 Flash Player 9.0.28.0 |
Récupère le prochain index de tabulation unique à utiliser dans cette boucle de tabulation.
Implémentation public function get nextTabIndex():intshowFocusIndicator:Boolean [lecture-écriture]
| Version du langage: | ActionScript 3.0 |
| Versions du moteur d'exécution: | AIR 1.0 Flash Player 9.0.28.0 |
Récupère ou définit une valeur qui indique si un composant qui a le focus doit recevoir un indicateur visuel de focus.
Implémentation public function get showFocusIndicator():Boolean public function set showFocusIndicator(value:Boolean):voidpublic function FocusManager(container:DisplayObjectContainer)| Version du langage: | ActionScript 3.0 |
| Versions du moteur d'exécution: | AIR 1.0 Flash Player 9.0.28.0 |
Crée une nouvelle occurrence de FocusManager.
Un gestionnaire de focus gère le focus au sein des enfants d'un objet DisplayObjectContainer.
Paramètres public function activate():void| Version du langage: | ActionScript 3.0 |
| Versions du moteur d'exécution: | AIR 1.0 Flash Player 9.0.28.0 |
Active l'occurrence de FocusManager.
L'occurrence FocusManager ajoute des gestionnaires d'événement qui lui permettent de surveiller les actions de la souris et du clavier en relation avec le focus.
public function deactivate():void| Version du langage: | ActionScript 3.0 |
| Versions du moteur d'exécution: | AIR 1.0 Flash Player 9.0.28.0 |
Désactive le FocusManager.
Le FocusManager supprime les gestionnaires d'événement qui lui permettent de surveiller les actions de la souris et du clavier en relation avec le focus.
public function findFocusManagerComponent(component:InteractiveObject):InteractiveObject| Version du langage: | ActionScript 3.0 |
| Versions du moteur d'exécution: | AIR 1.0 Flash Player 9.0.28.0 |
Récupère l'objet interactif qui contient l'objet donné, le cas échéant. Le lecteur pouvant attribuer le focus à un sous-composant d'un composant Flash, cette méthode identifie l'objet interactif qui a le focus du point de vue du composant.
Paramètres
Valeur renvoyée | InteractiveObject —
Objet contenant l'objet component ou, si aucun objet de ce type n'est trouvé, l'objet component lui-même.
|
public function getFocus():InteractiveObject| Version du langage: | ActionScript 3.0 |
| Versions du moteur d'exécution: | AIR 1.0 Flash Player 9.0.28.0 |
Récupère l'objet interactif qui détient actuellement le focus. Adobe conseille d'appeler cette méthode plutôt que d'utiliser l'objet Stage, car cette méthode indique le composant qui a le focus. L'objet Stage risque de renvoyer un sous-composant dans ce composant.
Valeur renvoyée public function getNextFocusManagerComponent(backward:Boolean = false):InteractiveObject| Version du langage: | ActionScript 3.0 |
| Versions du moteur d'exécution: | AIR 1.0 Flash Player 9.0.28.0 |
Récupère l'objet interactif qui recevrait le focus si l'utilisateur appuyait sur la touche de tabulation pour accéder à l'objet suivant. Cette méthode récupère l'objet qui détient actuellement le focus s'il n'y a pas d'autre objet valide dans l'application.
Paramètres
| backward:Boolean (default = false) —
Si ce paramètre a pour valeur true, le focus se déplace vers l'avant, ce qui amène cette méthode à récupérer le prochain objet appelé à recevoir le focus si l'utilisateur appuie sur la combinaison Maj + Tab.
|
Valeur renvoyée public function hideFocus():void| Version du langage: | ActionScript 3.0 |
| Versions du moteur d'exécution: | AIR 1.0 Flash Player 9.0.28.0 |
Définit la valeur de showFocusIndicator sur false et supprime l'indicateur de focus visuel de l'objet qui a le focus, le cas échéant.
public function setFocus(component:InteractiveObject):void| Version du langage: | ActionScript 3.0 |
| Versions du moteur d'exécution: | AIR 1.0 Flash Player 9.0.28.0 |
Définit le focus sur un composant IFocusManagerComponent. Cette méthode ne vérifie ni la visibilité du composant, ni son état activé, ni aucune autre condition.
Paramètres
public function showFocus():void| Version du langage: | ActionScript 3.0 |
| Versions du moteur d'exécution: | AIR 1.0 Flash Player 9.0.28.0 |
Définit la valeur de showFocusIndicator sur true et dessine l'indicateur de focus visuel sur l'objet qui a le focus, le cas échéant.
Cet exemple montre comment utiliser la classe FocusManager pour déplacer le focus entre les composants sur la scène.
Pour exécuter l'exemple, suivez ces étapes :
- Ajoutez le composant TextInput à la bibliothèque.
- Enregistrez ce code sous le nom FocusManagerExample.as dans le même répertoire que votre fichier FLA.
- Dans le fichier FLA, définissez la classe Document sur FocusManagerExample.
package
{
import fl.controls.TextInput;
import fl.managers.FocusManager;
import flash.display.InteractiveObject;
import flash.display.Sprite;
import flash.events.*;
import flash.utils.Timer;
public class FocusManagerExample extends Sprite
{
private var fm:FocusManager;
public function FocusManagerExample() {
buildGridOfTextInputs();
fm = new FocusManager(this);
var t:Timer = new Timer(1000);
t.addEventListener(TimerEvent.TIMER,secondPassed);
t.start();
}
private function buildGridOfTextInputs():void {
var rowSpacing:uint = 30;
var colSpacing:uint = 110;
var totalRows:uint = 4;
var totalCols:uint = 3;
var i:uint;
for(i = 0; i < totalRows * totalCols; i++) {
var ti:TextInput = new TextInput()
ti.name = "component"+i.toString();
ti.addEventListener(FocusEvent.FOCUS_IN,focusChange);
ti.setSize(100,20);
ti.x = 10 + ((i % totalCols) * colSpacing);
ti.y = 10 + (Math.floor(i / totalCols) * rowSpacing);
ti.tabEnabled = true;
addChild(ti);
}
}
private function secondPassed(e:TimerEvent):void {
var nextComponent:InteractiveObject = fm.getNextFocusManagerComponent();
fm.setFocus(nextComponent);
}
private function focusChange(e:FocusEvent):void {
trace("Focus change: " + e.target.name);
}
}
}
© 2004-2008 Adobe Systems Incorporated. All rights reserved.
Thu Jan 8 2009, 03:00 AM -08:00