En général, la classe BrowserManager et la liaison profonde vous permettent de conserver un état dans une application et de manipuler les URL et l’historique de navigation, mais la classe HistoryManager peut être utile dans d’autres circonstances, comme dans la gestion d’une application Flex héritée. Vous ne pouvez pas utiliser les classes HistoryManager et BrowserManager dans la même application Flex, même si elles utilisent le même jeu de fichiers de support.
La gestion d’historique est activée par défaut dans les conteneurs Accordion et TabNavigator. Cela signifie que si l’utilisateur sélectionne un des volets d’un contrôle Accordion, il peut renvoyer dans le volet précédent à l’aide du bouton Précédent du navigateur ou de la commande de navigation Précédent. La gestion d’historique est désactivée par défaut pour le conteneur de navigation ViewStack.
Vous pouvez désactiver la gestion d’historique en définissant la propriété
Vous pouvez également activer la gestion d’historique pour d’autres objets d’une application en enregistrant les objets avec la classe HistoryManager. Pour enregistrer un composant avec la classe HistoryManager, appelez la méthode
<mx:Application xmlns:mx="http://www.adobe.com/2006/mxml" implements="mx.managers.IHistoryManagerClient" initialize="mx.managers.HistoryManager.register(this);">Vous devez également implémenter les méthodes
Toutes les méthodes et propriétés de la classe HistoryManager sont statiques. Vous n’avez donc pas besoin de leur créer une occurrence.
Pour optimiser votre application, si un composant enfant de votre composant implémente l’interface IFocusManagerComponent et que vous ne souhaitez jamais qu’il reçoive le focus, définissez
Ainsi, la classe FocusManager ignorera ce composant et n’y surveillera pas le changement des propriétés
Remarque : cela ne signifie pas que vous ne pouvez pas attribuer le focus à cet objet par programme dans votre méthode
Pour utiliser l’objet BrowserManager, appelez la méthode
Cette interface est implémentée par les conteneurs de navigation Flex TabNavigator, Accordion et ViewStack. Elle doit être implémentée par tout autre composant enregistré avec le gestionnaire d’historique.
public function loadState(state:Object):void { // First, check to see if state is null. When the app is reset // back to its initial state, loadState() is passed null. if (state == null) { myList.selectedIndex = -1; mySearchInput.text = ""; } else { myList.selectedIndex = state.selectedIndex; mySearchInput.text = state.searchString; } }
Le gestionnaire d’historique recueille les informations d’état de tous les composants et encode les informations au format d’URL. La longueur des URL est limitée sur la plupart des navigateurs, les informations d’état retournées doivent dont être aussi concises que possible.
public function saveState():Object { var state:Object = {}; state.selectedIndex = myList.selectedIndex; state.searchString = mySearchInput.text; return state; }
Chaque application est dotée d’un objet ISystemManager. L’objet ISystemManager envoie un événement si la taille de la fenêtre d’application change (vous ne pouvez pas la changer au sein de l’application, mais seulement par interaction avec la fenêtre du système d’exploitation ou avec le navigateur). Il est le parent de tous les éléments affichables dans l’application, comme l’occurrence mx.core.Application principale et tous les menus déroulants, infos-bulles, curseurs, etc. Tout objet parent du contrôle ISystemManager est considéré comme une fenêtre de « niveau supérieur », même les infos-bulles et les curseurs.
L’objet ISystemManager fait également basculer le focus entre les fenêtres de niveau supérieur si plusieurs objets IFocusManagerContainer sont affichées et si les utilisateurs interagissent avec les composants au sein des objets IFocusManagerContainer.
Toute activité du clavier et de la souris qui n’est pas expressément traitée à un autre emplacement de l’application est vue par l’objet ISystemManager, ce qui en fait l’endroit idéal pour gérer l’activité, si besoin est.
Si une application est chargée dans une autre application, un objet ISystemManager est tout de même créé, mais il ne gérera pas de « fenêtre d’application », selon les règles de sécurité et du domaine. En revanche, il deviendra le
L’objet ISystemManager gère plusieurs listes d’enfants, chacune étant destinée aux infos-bulles, curseurs et fenêtres contextuelles. C’est ainsi qu’il s’assure que les fenêtres contextuelles « flottent » sur les fenêtres de l’application principale et que les infos-bulles « flottent » par dessus, et les curseurs encore au-dessus. Si vous observez la propriété
Un objet ISystemManager possède plusieurs types d’enfants, comme l’application, les fenêtres contextuelles, les fenêtres de niveau supérieur, les infos-bulles et les curseurs personnalisés. Vous pouvez accéder aux curseurs personnalisés via la propriété
L’objet IChildList comporte des méthodes comme
Les fenêtres modales n’autorisent pas les clics dans une autre fenêtre qui sont susceptibles d’activer l’objet FocusManager dans cette fenêtre. L’objet PopUpManager modifie ce nombre en créant et supprimant les fenêtres modales.
Un objet ISystemManager possède plusieurs types d’enfants, comme l’application, les fenêtres contextuelles, les infos-bulles et les curseurs personnalisés. Vous pouvez accéder aux fenêtres de niveau supérieur via la propriété
L’objet IChildList comporte des méthodes comme
Un objet ISystemManager possède plusieurs types d’enfants, comme l’application, les fenêtres contextuelles, les infos-bulles et les curseurs personnalisés.
L’objet IChildList comporte des méthodes comme
Un objet ISystemManager possède plusieurs types d’enfants, comme l’application, les fenêtres contextuelles, les fenêtres de niveau supérieur, les infos-bulles et les curseurs personnalisés.
L’objet IChildList comporte des méthodes comme
Les infos-bulles apparaissent sur leur propre calque, par dessus tout autre élément à l’exception des curseurs.
Le mode d’utilisation standard des infos-bulles est de laisser la classe ToolTipManager les afficher ou les masquer automatiquement lorsque l’utilisateur déplace la souris sur les objets pour lesquels la propriété
Par contraste, cette méthode (avec
Cette méthode crée d’abord une nouvelle occurrence de la classe ToolTip et appelle la méthode
Vous devez enregistrer la référence à l’info-bulle que cette méthode renvoie afin de pouvoir la transmettre à la méthode
Cette méthode appelle la méthode
Il est déconseillé d’appeler cette méthode sur l’objet
Ce paramètre est utile si l’utilisateur se déplace rapidement d’un contrôle à un autre. Après l’affichage de la première info-bulle, Flex affiche les autres immédiatement à la suite et n’attend pas. Plus le paramètre du contrôle
Toutes les méthodes et propriétés de la classe DragManager sont statiques. Vous n’avez donc pas besoin de leur créer une occurrence.
Tous les composants Flex prennent en charge les opérations Glisser-déposer. Flex fournit un support supplémentaire pour faire glisser et déposer les contrôles List, Tree et DataGrid.
Lorsque l’utilisateur sélectionne un élément avec la souris, le composant sélectionné est appelé l’intiateur de glissement. L’image affichée lors de l’opération de glissement est appelée proxy de glissement.
Lorsque l’utilisateur déplace le proxy de glissement sur un autre composant, l’événement
Une fois le glissement terminé, un événement
DragManager.acceptDragDrop(Canvas(event.target));
Chaque phase est distincte des autres et tous les objets UIComponent d’une phase sont traités avant de passer à la phase suivante. Lors du traitement des objets UIComponent d’une phase, des demandes visant à ce qu’une phase retraite les composants UIComponent peuvent se produire. Ces demandes sont mises en attente et ne sont traitées que lors de la prochaine exécution de la phase.
La phase de validation commence par un appel de la méthode
Les objets de la liste sont traités dans l’ordre d’imbrication inverse. L’objet imbriqué le moins profondément est utilisé en premier. Cette opération peut également porter le nom de tri ou de classement inverse.
Cette phase permet aux composants dont le contenu dépend des paramètres de propriété de se configurer avant les phases de mesure et de mise en forme. Pour des raisons de performances, il peut arriver que la méthode setter de la propriété d’un composant ne fasse pas tout le travail nécessaire pour utiliser la nouvelle valeur de propriété. En revanche, la méthode setter de la propriété appelle la méthode
La phase de mesure commence par un appel de la méthode
Si la méthode
Les objets de la liste sont traités dans l’ordre d’imbrication. L’objet imbriqué le plus profondément est utilisé en premier. Cette opération peut également porter le nom de tri ou de classement inverse.
La phase de mise en forme commence par un appel de la méthode
Si la méthode
Les objets de la liste sont traités dans l’ordre d’imbrication inverse. L’objet imbriqué le moins profondément est utilisé en premier. Cette opération peut également porter le nom de tri ou de classement inverse.
En général, les composants ne remplacent pas les méthodes
Au démarrage de l’application, une seule occurrence de la classe LayoutManager est créée et stockée dans la propriété
La taille d’un objet peut changer pour deux raisons :
Lorsque la première condition a lieu, il est nécessaire de recalculer les mesures de l’objet. Lorsque la deuxième condition a lieu, il n’est pas nécessaire de recalculer les mesures, car la nouvelle taille de l’objet est connue. Toutefois, il est nécessaire de réaliser à nouveau la mesure et la mise en forme du parent de l’objet.
Pour garantir la mise à jour des valeurs, vous pouvez appeler la méthode
Ensuite, les méthodes
Pour finir, les méthodes
Si la valeur est
L’objet FocusManager gère le focus à partir du « niveau du composant ». Dans Flex, un objet UITextField dans un composant est la seule façon d’autoriser la saisie de texte par clavier. Pour Flash Player ou AIR, cet objet UITextField a le focus. Toutefois, du point de vue de l’objet FocusManager, le composant qui est le parent de l’objet UITextField a le focus. Ainsi, il existe une distinction entre le focus au niveau du composant et le focus de niveau Player. Les développeurs d’application ne sont généralement confrontés qu’au focus au niveau du composant, tandis que les développeurs de composant doivent comprendre le focus de niveau Player.
Tous les composants qui peuvent être gérés par le FocusManager doivent implémenter la classe mx.managers.IFocusManagerComponent, alors que les objets gérés par le focus de niveau Player n’ont pas à le faire.
L’objet FocusManager gère également le concept d’un defaultButton : objet Button placé sur un formulaire et qui distribue un événement click lorsque l’utilisateur appuie sur la touche Entrée, selon l’emplacement du focus à ce moment-là.
Un objet FocusManager gère le focus au sein des enfants d’un objet IFocusManagerContainer. Il s’installe dans l’objet IFocusManagerContainer à l’exécution du constructeur.
L’objet FocusManager ajoute les gestionnaires d’événement qui lui permettent de surveiller les actions de la souris et du clavier en relation avec le focus.
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.
Cette propriété étant gérée par les conteneurs Flex, ne la définissez pas directement pour spécifier le bouton par défaut.
L’objet
Par défaut, cette valeur est
En général, il est préférable d’utiliser les méthodes
Si le titre est défini, l’ancien titre dans le navigateur est remplacé par le nouveau.
Pour stocker l’URL, une méthode JavaScript du nom de
Lorsque cela est défini, l’événement
L’objet PopUpManager donne également une certaine modalité de sorte que les fenêtres situées sous les fenêtres contextuelles ne peuvent pas recevoir d’événements de la souris. Il fournit également un événement si l’utilisateur clique sur la souris en dehors de la fenêtre afin que le développeur puisse choisir de faire disparaître la fenêtre ou d’avertir l’utilisateur.
Exemple
var tw:TitleWindow = new TitleWindow(); tw.title = "My Title"; mx.managers.PopUpManager.addPopUp(tw, pnl, false);
Crée une fenêtre contextuelle à l’aide de l’occurrence
Notez que la position de la fenêtre contextuelle peut ne pas changer immédiatement après cet appel, car Flex peut attendre de mesurer et de mettre en forme la fenêtre contextuelle avant de la centrer.
Exemple
pop = mx.managers.PopUpManager.createPopUp(pnl, TitleWindow, false);
Crée une fenêtre contextuelle basée sur la classe TitleWindow, à l’aide de l’occurrence
Cette propriété étant gérée par les conteneurs Flex, ne la définissez pas directement pour spécifier le bouton par défaut.
L’objet
Par défaut, cette valeur est
En général, il est préférable d’utiliser les méthodes
Chaque application est dotée d’un composant SystemManager. Le composant SystemManager envoie un événement si la taille de la fenêtre d’application change (vous ne pouvez pas la changer au sein de l’application, mais seulement par interaction avec la fenêtre du système d’exploitation ou avec le navigateur). Il est le parent de tous les éléments affichables dans l’application, comme l’occurrence mx.core.Application principale et tous les menus déroulants, infos-bulles, curseurs, etc. Tout objet qui est le parent du contrôle SystemManager est considéré comme une fenêtre de niveau supérieur, même les infos-bulles et les curseurs.
L’objet SystemManager fait également basculer le focus entre les fenêtres de niveau supérieur si plusieurs objets IFocusManagerContainer sont affichés et si les utilisateurs interagissent avec les composants au sein des objets IFocusManagerContainer.
Toute activité du clavier et de la souris qui n’est pas expressément traitée à un autre emplacement de l’application est vue par l’objet SystemManager, ce qui en fait l’endroit idéal pour gérer l’activité, si besoin est.
Si une application est chargée dans une autre application, un gestionnaire SystemManager sera tout de même créé, mais il ne gérera pas de fenêtre d’application, selon les règles de sécurité et du domaine. En revanche, il deviendra le
Le gestionnaire SystemManager gère plusieurs listes d’enfants, chacune étant destinée aux infos-bulles, curseurs et fenêtres contextuelles. C’est ainsi qu’il s’assure que les fenêtres contextuelles « flottent » sur les fenêtres de l’application principale et que les infos-bulles « flottent » par dessus, et les curseurs encore au-dessus. Si vous utilisez simplement la propriété
L’objet SystemManager est la première classe d’affichage créée dans une application. Il est responsable de la création d’une méthode
Ceci est le point de départ de toutes les applications Flex. Cette classe est définie pour être la classe racine d’un fichier SWF Flex. Flash Player instancie une occurrence de cette classe, ce qui entraîne l’appel de ce constructeur.
Vous n’appelez pas cette méthode directement. Cette méthode est appelée par les fabriques de modules enfants lorsqu’elles ajoutent/chargent une bibliothèque RSL dans le domaine d’application de cette fabrique de modules.
Notez que cette propriété n’est pas tapée comme mx.core.Application, en raison des performances du temps de chargement, mais peut être contrainte dans l’application mx.core.Application.
Un objet ISystemManager possède plusieurs types d’enfants, comme l’application, les fenêtres contextuelles, les fenêtres de niveau supérieur, les infos-bulles et les curseurs personnalisés. Vous pouvez accéder aux curseurs personnalisés via la propriété
L’objet IChildList comporte des méthodes comme
Un objet ISystemManager possède plusieurs types d’enfants, comme l’application, les fenêtres contextuelles, les infos-bulles et les curseurs personnalisés. Vous pouvez accéder aux fenêtres de niveau supérieur via la propriété
L’objet IChildList comporte des méthodes comme
Un objet ISystemManager possède plusieurs types d’enfants, comme l’application, les fenêtres contextuelles, les infos-bulles et les curseurs personnalisés.
L’objet IChildList comporte des méthodes comme
Un objet ISystemManager possède plusieurs types d’enfants, comme l’application, les fenêtres contextuelles, les fenêtres de niveau supérieur, les infos-bulles et les curseurs personnalisés.
L’objet IChildList comporte des méthodes comme
Chaque phase est distincte des autres et tous les objets UIComponent d’une phase sont traités avant de passer à la phase suivante. Lors du traitement des objets UIComponent d’une phase, des demandes visant à ce qu’une phase retraite les composants UIComponent peuvent se produire. Ces demandes sont mises en attente et ne sont traitées que lors de la prochaine exécution de la phase.
La phase de validation commence par un appel de la méthode
Les objets de la liste sont traités dans l’ordre d’imbrication inverse. L’objet imbriqué le moins profondément est utilisé en premier. Cette opération peut également porter le nom de tri ou de classement inverse.
Cette phase permet aux composants dont le contenu dépend des paramètres de propriété de se configurer avant les phases de mesure et de mise en forme. Pour des raisons de performances, il peut arriver que la méthode setter de la propriété d’un composant ne fasse pas tout le travail nécessaire pour utiliser la nouvelle valeur de propriété. En revanche, la méthode setter de la propriété appelle la méthode
La phase de mesure commence par un appel de la méthode
Si la méthode
Les objets de la liste sont traités dans l’ordre d’imbrication. L’objet imbriqué le plus profondément est utilisé en premier. Cette opération peut également porter le nom de tri ou de classement inverse.
La phase de mise en forme commence par un appel de la méthode
Si la méthode
Les objets de la liste sont traités dans l’ordre d’imbrication inverse. L’objet imbriqué le moins profondément est utilisé en premier. Cette opération peut également porter le nom de tri ou de classement inverse.
En général, les composants ne remplacent pas les méthodes
Au démarrage de l’application, une seule occurrence de la classe LayoutManager est créée et stockée dans la propriété
La taille d’un objet peut changer pour deux raisons :
Lorsque la première condition a lieu, il est nécessaire de recalculer les mesures de l’objet. Lorsque la deuxième condition a lieu, il n’est pas nécessaire de recalculer les mesures, car la nouvelle taille de l’objet est connue. Toutefois, il est nécessaire de réaliser à nouveau la mesure et la mise en forme du parent de l’objet.
Pour garantir la mise à jour des valeurs, vous pouvez appeler la méthode
Ensuite, les méthodes
Pour finir, les méthodes
Si la valeur est
Les objets qui implémentent cette interface peuvent être transmis à la méthode
De même, si un objet est transmis à la méthode
L’interface ILayoutManagerClient est implémentée par les classes UIComponent et ProgrammaticSkin.
Par exemple, si votre application effectue un traitement qui implique que l’utilisateur doit attendre jusqu’à la fin du traitement, vous pouvez modifier le curseur pour qu’il reflète la période d’attente. Dans ce cas, vous pouvez utiliser un sablier ou une autre image pour le curseur.
Vous pouvez également changer le curseur pour indiquer à l’utilisateur les actions qu’il peut effectuer. Par exemple, vous pouvez utiliser une image de curseur pour indiquer à l’utilisateur que la saisie est activée et un autre pour lui indiquer que la saisie est désactivée. Vous pouvez utiliser une image JPEG, GIF, PNG ou SVG, un objet Sprite ou un fichier SWF comme image de curseur.
Toutes les méthodes et propriétés de la classe CursorManager sont statiques. Vous n’avez donc pas besoin de leur créer une occurrence.
Dans AIR, chaque occurrence mx.core.Window utilise sa propre occurrence de la classe CursorManager. Au lieu de référencer directement les méthodes et propriétés statiques de la classe CursorManager, utilisez la propriété
L’appel de cette méthode n’affecte pas le curseur système. Utilisez les méthodes
L’appel de cette méthode n’affecte pas le curseur système. Utilisez les méthodes