J'ai construit une application de multiplication dans Flex avec différents rôles d'utilisateur. J'utilise une View Stack avec une barre de menu pour naviguer entre les différentes pages.Flex cycle de vie des composants avec les menus - meilleure pratique
Cependant - chaque fois qu'une page est ouverte, j'ai besoin de faire quelques appels de base de données, appliquer des paramètres de rôle utilisateur, etc. dans une fonction init(). Cette fonction init peut référencer certains éléments d'interface utilisateur de cette page.
J'ai essayé de le charger avec l'événement "creationComplete", mais celui-ci n'est déclenché qu'une seule fois (puisque la page n'est pas reconstruite chaque fois que la pile de la vue l'affiche).
Maintenant, je l'ai mis sur l'événement "show", mais cela ne semble pas être déclenché de manière cohérente, ou avant que la page est entièrement créée la première fois.
Quelle est la meilleure pratique pour ce cas? * Je dois passer des données * fonctions d'initialisation d'appel (appels de base de données) * Manipulez composants
Idéalement je besoin d'un moyen d'appeler init chaque fois que la page est chargée et après tous les composants sont créés.
Merci pour votre aide, Martin
Oui c'est ce que je voulais faire, mais la première fois, lorsque la vue n'a jamais été consulté auparavant, je ne peux pas référencer les enfants de la vue. Ils n'existent pas encore. Seul TabBar a la propriété ayant les enfants d'un conteneur initialisé une fois que l'événement ITEM.CLICK est déclenché. Mais si vous utilisez un Viewstack avec une barre d'onglets, cet événement n'est pas supporté. Je finissais par rejeter l'instant différé, le définissais creationPolicy sur "All" et faisais les appels sur chaque changement de pile de vue. –
Ok. Je me souviens d'avoir eu des problèmes avec ce genre de problème aussi. Je ne possède plus la source mais pour ce dont je me souviens, j'ai utilisé à la fois creationComplete et show effects. La première fois qu'une vue est créée, le gestionnaire creationComplete est exécuté. Appelez la fonction init et définissez une variable creationDone sur true. Dans le gestionnaire d'effets show, vérifiez si creationDone est true et, si c'est le cas, appelez init –