Package | mx.managers |
Interface | public interface ILayoutManager extends IEventDispatcher |
Implémenteurs | LayoutManager |
Version du langage: | ActionScript 3.0 |
Version du produit: | Flex 3 |
Versions du moteur d’exécution: | Flash Player 9, AIR 1.1 |
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 validateProperties()
, qui parcourt une liste (triée dans l’ordre inverse par niveau d’imbrication) d’objets appelant la méthode Méthode validateProperties()
.
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 invalidateProperties()
, retardant ainsi le travail jusqu’à l’exécution de cette phase. Cela permet d’empêcher tout travail inutile si la propriété est définie plusieurs fois.
La phase de mesure commence par un appel de la méthode validateSize()
, qui parcourt une liste (triée par niveau d’imbrication) d’objet appelant la méthode Méthode validateSize()
permettant de déterminer si l’objet a changé de taille.
Si la méthode
invalidateSize()
d’un objet a été précédemment appelée, la méthode validateSize()
est également appelée. Si la taille ou la position de l’objet a été modifiée suite à l’appel de la méthode validateSize()
, la méthode
invalidateDisplayList()
de l’objet est appelée, ajoutant ainsi l’objet à la file d’attente de traitement pour la prochaine exécution de la phase de mise en forme. En outre, le parent de l’objet est marqué pour les phases de mesure et de présentation en appelant respectivement les méthodes
invalidateSize()
et
invalidateDisplayList()
.
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 validateDisplayList()
, qui parcourt une liste (triée dans l’ordre inverse par niveau d’imbrication) d’objets appelant la méthode Méthode validateDisplayList()
permettant de demander que l’objet dimensionne et positionne tous les composants qu’il contient (c’est-à-dire ses enfants).
Si la méthode
invalidateDisplayList()
d’un objet a déjà été appelée, la méthode validateDisplayList()
est appelée.
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 validateProperties()
, validateSize()
ou validateDisplayList()
. Dans le cas des objets UIComponent, la plupart des composants remplacent les méthodes commitProperties()
, measure()
ou updateDisplayList()
, qui sont appelées par les méthodes validateProperties()
, validateSize()
ou validateDisplayList()
, respectivement.
Au démarrage de l’application, une seule instance de la classe LayoutManager est créée et stockée dans la propriété UIComponent.layoutManager
. Tous les composants sont supposés utiliser cette instance. Si vous n’avez pas accès à l’objet UIComponent, vous pouvez également accéder à l’objet LayoutManager à l’aide de la méthode LayoutManager.getInstance()
statique.
Propriété | Défini par | ||
---|---|---|---|
usePhasedInstantiation : Boolean
Indicateur précisant si l’objet LayoutManager autorise l’actualisation de l’écran entre les phases. | ILayoutManager |
Méthode | Défini par | ||
---|---|---|---|
addEventListener(type:String, listener:Function, useCapture:Boolean = false, priority:int = 0, useWeakReference:Boolean = false):void
Enregistre un objet écouteur d’événement auprès d’un objet EventDispatcher afin que l’écouteur soit averti d’un événement. | IEventDispatcher | ||
Distribue un événement dans le flux d’événements. | IEventDispatcher | ||
Vérifie si des écouteurs sont enregistrés auprès de l’objet EventDispatcher pour un type spécifique d’événement. | IEventDispatcher | ||
Appelé lorsqu’un composant change d’une façon qui nécessite la modification de sa mise en forme et/ou de ses effets visuels. | ILayoutManager | ||
Ajoute un objet à la liste des composants qui souhaitent que leur méthode validateProperties() soit appelée. | ILayoutManager | ||
Ajoute un objet à la liste des composants qui souhaitent que leur méthode validateSize() soit appelée. | ILayoutManager | ||
Renvoie la valeur true si des composants ont besoin d’être validés. Renvoie la valeur false si les composants sont déjà validés. | ILayoutManager | ||
Supprime un écouteur de l’objet EventDispatcher. | IEventDispatcher | ||
Lorsque les propriétés sont modifiées, les composants n’appliquent généralement pas ces changements immédiatement. | ILayoutManager | ||
Lorsque les propriétés sont modifiées, les composants n’appliquent généralement pas ces changements immédiatement. | ILayoutManager | ||
Vérifie si un écouteur d’événement est enregistré auprès de cet objet EventDispatcher ou de ses ancêtres pour le type d’événement spécifié. | IEventDispatcher |
usePhasedInstantiation | propriété |
usePhasedInstantiation:Boolean
Version du langage: | ActionScript 3.0 |
Version du produit: | Flex 3 |
Versions du moteur d’exécution: | Flash Player 9, AIR 1.1 |
Indicateur précisant si l’objet LayoutManager autorise l’actualisation de l’écran entre les phases. Si la valeur est true
, la mesure et la mise en forme s’effectuent en phases, une phase par actualisation de l’écran. Les méthodes validateProperties()
et commitProperties()
de tous les composants sont appelées jusqu’à la validation de toutes les propriétés. L’écran est ensuite actualisé.
Ensuite, les méthodes validateSize()
et measure()
de tous les composants sont appelées jusqu’à ce que tous les composants aient été mesurés. Enfin, l’écran est à nouveau actualisé.
Pour finir, les méthodes validateDisplayList()
et updateDisplayList()
de tous les composants sont appelées jusqu’à ce que tous les composants aient été validés. L’écran est à nouveau actualisé. Si dans la validation d’une phase, une phase antérieure est invalidée, l’objet LayoutManager recommence. Ceci est plus efficace lorsqu’un grand nombre de composants sont créés et initialisés. La structure est responsable de la définition de cette propriété.
Si la valeur est false
, les trois phases sont réalisées avant l’actualisation de l’écran.
Implémentation
public function get usePhasedInstantiation():Boolean
public function set usePhasedInstantiation(value:Boolean):void
invalidateDisplayList | () | méthode |
public function invalidateDisplayList(obj:ILayoutManagerClient):void
Version du langage: | ActionScript 3.0 |
Version du produit: | Flex 3 |
Versions du moteur d’exécution: | Flash Player 9, AIR 1.1 |
Appelé lorsqu’un composant change d’une façon qui nécessite la modification de sa mise en forme et/ou de ses effets visuels. Dans ce cas, il est nécessaire d’exécuter l’algorithme de mise en forme du composant, même si sa taille n’a pas changé. Par exemple, lorsqu’un nouveau composant enfant est ajouté, ou si une propriété de style change ou si le parent d’un composant a donné à ce dernier une nouvelle taille.
Paramètres
obj:ILayoutManagerClient — Objet à modifier.
|
invalidateProperties | () | méthode |
public function invalidateProperties(obj:ILayoutManagerClient):void
Version du langage: | ActionScript 3.0 |
Version du produit: | Flex 3 |
Versions du moteur d’exécution: | Flash Player 9, AIR 1.1 |
Ajoute un objet à la liste des composants qui souhaitent que leur méthode validateProperties()
soit appelée. Un composant doit appeler cette méthode lorsqu’une propriété change. En général, la méthode setter d’une propriété stocke la nouvelle valeur dans une variable temporaire et appelle la méthode invalidateProperties()
afin que ses méthodes validateProperties()
et commitProperties()
soient appelées ultérieurement, lorsque la nouvelle valeur sera réellement appliquée au composant et/ou à ses enfants. L’avantage de cette stratégie réside dans le fait que, souvent, plusieurs propriétés sont modifiées en même temps et les propriétés peuvent interagir entre elles, ou répéter un code lors de leur application ou encore avoir besoin d’être appliquées dans un ordre précis. Cette stratégie est la méthode la plus efficace possible pour appliquer les nouvelles valeurs des propriétés.
Paramètres
obj:ILayoutManagerClient — Objet dont la propriété a changé.
|
invalidateSize | () | méthode |
public function invalidateSize(obj:ILayoutManagerClient):void
Version du langage: | ActionScript 3.0 |
Version du produit: | Flex 3 |
Versions du moteur d’exécution: | Flash Player 9, AIR 1.1 |
Ajoute un objet à la liste des composants qui souhaitent que leur méthode validateSize()
soit appelée. Appelé lorsque la taille d’un objet change.
La taille d’un objet peut changer pour deux raisons :
- Le contenu de l’objet change. Par exemple, la taille d’un bouton change lorsque son
étiquette
est modifiée. - Un script change explicitement les propriétés suivantes :
minWidth
,minHeight
,explicitWidth
,explicitHeight
,maxWidth
oumaxHeight
.
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.
Paramètres
obj:ILayoutManagerClient — Objet dont la taille a changé.
|
isInvalid | () | méthode |
public function isInvalid():Boolean
Version du langage: | ActionScript 3.0 |
Version du produit: | Flex 3 |
Versions du moteur d’exécution: | Flash Player 9, AIR 1.1 |
Renvoie la valeur true
si des composants ont besoin d’être validés. Renvoie la valeur false
si les composants sont déjà validés.
Boolean — Renvoie la valeur true si des composants ont besoin d’être validés. Renvoie la valeur false si les composants sont déjà validés.
|
validateClient | () | méthode |
public function validateClient(target:ILayoutManagerClient, skipDisplayList:Boolean = false):void
Version du langage: | ActionScript 3.0 |
Version du produit: | Flex 3 |
Versions du moteur d’exécution: | Flash Player 9, AIR 1.1 |
Lorsque les propriétés sont modifiées, les composants n’appliquent généralement pas ces changements immédiatement. En revanche, les composants appellent généralement une des méthodes d’annulation de l’objet LayoutManager et appliquent les propriétés ultérieurement. La propriété réelle que vous définissez peut être relue immédiatement. Mais si la propriété affecte d’autres propriétés dans le composant ou ses enfants ou parents, ces autres propriétés peuvent ne pas être immédiatement mises à jour.
Pour garantir la mise à jour des valeurs, vous pouvez appeler la méthode validateClient()
. Elle met à jour toutes les propriétés dans tous les composants dont le niveau d’imbrication est supérieur ou égal au composant cible avant de renvoyer le contrôle à l’appelant. Appelez cette méthode uniquement lorsque cela est nécessaire, car cet appel exige des calculs intensifs.
Paramètres
target:ILayoutManagerClient — Le composant transmis est utilisé pour tester les composants à valider. Les méthodes validateProperties() , commitProperties() , validateSize() , measure() , validateDisplayList() et updateDisplayList() de tous les composants contenus dans ce composant seront appelées.
| |
skipDisplayList:Boolean (default = false ) — Si la valeur est true , les méthodes validateDisplayList() et updateDisplayList() ne sont pas appelées.
|
validateNow | () | méthode |
public function validateNow():void
Version du langage: | ActionScript 3.0 |
Version du produit: | Flex 3 |
Versions du moteur d’exécution: | Flash Player 9, AIR 1.1 |
Lorsque les propriétés sont modifiées, les composants n’appliquent généralement pas ces changements immédiatement. En revanche, les composants appellent généralement une des méthodes d’annulation de l’objet LayoutManager et appliquent les propriétés ultérieurement. La propriété réelle que vous définissez peut être relue immédiatement. Mais si la propriété affecte d’autres propriétés dans le composant ou ses enfants ou parents, ces autres propriétés peuvent ne pas être immédiatement mises à jour. Pour garantir la mise à jour des valeurs, vous pouvez appeler la méthode validateNow()
. Elle met à jour toutes les propriétés dans tous les composants avant de renvoyer le contrôle. Appelez cette méthode uniquement lorsque cela est nécessaire, car cet appel exige des calculs intensifs.
Tue Jun 12 2018, 09:30 AM Z