Précédent   Forum des professionnels en informatique > Webmasters - Développement Web > Flash/Flex > Flex
Flex Forum d'entraide sur la programmation Adobe Flex : applications Internet riches (RIA)
Partagez cette discussion sur d'autres réseaux sociaux : Viadeo Twitter Google Facebook Digg Delicious MySpace Yahoo
Réponse Proposer ce sujet en actualité
 
Outils de la discussion
Publicité
'
Vieux 05/04/2011, 13h47   #1
Candidat au titre de Membre du Club
 
Inscription : juin 2007
Messages : 60
Détails du profil
Informations forums :
Inscription : juin 2007
Messages : 60
Points : 12
Points : 12
Par défaut Fonction init

Bonjour,

J'aimerais utiliser une fonction init() qui m'initialiserais certain composants de mon application mais voilà le soucis c'est que je ne comprend pas bien comment cette fonction fonctionne, elle est appelé comment et quand?

Merci d'avance pour vos réponse
xclue est déconnecté   Envoyer un message privé Réponse avec citation 00
Vieux 05/04/2011, 20h04   #2
Nouveau Membre du Club
 
Homme alexandre
Ingénieur développement de composants
Inscription : mars 2011
Messages : 21
Détails du profil
Informations personnelles :
Nom : Homme alexandre
Localisation : France, Yvelines (Île de France)

Informations professionnelles :
Activité : Ingénieur développement de composants
Secteur : Industrie

Informations forums :
Inscription : mars 2011
Messages : 21
Points : 29
Points : 29
Salut xclue,

Alors la fonction init() s'utilise généralement quand ton application a fini de charger. C'est à dire avant l'affichage de celui ci . On l'utilise généralement sur une création complete du mxml comme ci dessous:
Code :
1
2
3
4
5
6
7
8
creationComplete="Init();"
 
<mx:script>
   protected function Init():void
   {
      ...
   }
   </mx:script>
Sinon tu dois faire la distinction avec [Init] qui lui instancie l'élément et vérifie que chaque élément qu'il nécessite soit instancié au préalable.
catalor est déconnecté   Envoyer un message privé Réponse avec citation 00
Vieux 05/04/2011, 21h02   #3
Candidat au titre de Membre du Club
 
Inscription : juin 2007
Messages : 60
Détails du profil
Informations forums :
Inscription : juin 2007
Messages : 60
Points : 12
Points : 12
Ok, et creationComplete="Init();" on doit le placer ou dans le code?
Donc si j'ai bien compris la fonction inti() est appelé dès que la première vue à fini de se charger c'est ça?
xclue est déconnecté   Envoyer un message privé Réponse avec citation 00
Vieux 06/04/2011, 11h02   #4
Modérateur
 
Homme
Consultant Flex / Java
Inscription : novembre 2008
Messages : 452
Détails du profil
Informations personnelles :
Sexe : Homme
Âge : 28
Localisation : Luxembourg

Informations professionnelles :
Activité : Consultant Flex / Java
Secteur : High Tech - Éditeur de logiciels

Informations forums :
Inscription : novembre 2008
Messages : 452
Points : 637
Points : 637
Salut,

la fonction init() n'est pas une fonction prédéfinie dans le framework de Flex. C'est juste une pratique courante dans Flex. Elle est utilisée souvent pour remplir certaines variables utiles dans ton écran. Par exemple, si tu veux remplir une datagrid d'un écran en fonction des données d'un autre écran, l'arrayCollection de cette datagrid peut être rempli dans cette fonction.
Donc le but c'est de le remplir à l'initialiation de ta vue (donc dans une fonction init()).

Maintenant, il y a plusieurs steps d'initialisation d'une vue en flex :
- preintialize
- initialize
- creationComplete


L'event creationComplete est dispatché une fois que tous les composants ont été créés.
Donc potentiellement ta fonction init() peut être appelée sur le creationComplete :

myView.mxml:

Code :
1
2
3
4
5
6
7
8
9
<mx:Vbox .... creationComplete="init()"...>
<mx:script>
 [!CDATA[
   private function init(){
   //some code here...
}
]]
</mx:script>
</mx:VBox>
__________________
N'oubliez pas avant de poster :
et bien sûr la doc Flex
Krazymins est déconnecté   Envoyer un message privé Réponse avec citation 00
Vieux 06/04/2011, 14h03   #5
Candidat au titre de Membre du Club
 
Inscription : juin 2007
Messages : 60
Détails du profil
Informations forums :
Inscription : juin 2007
Messages : 60
Points : 12
Points : 12
Ok super merci de cette réponse je comprends mieux, mais par exemple il est possible d'initialiser un datagrid qui n'est pas affiché à l'écran? Je m'explique j'ai un tabnavigator avec 2 onglets qui contienne chacun un datagrid, lorsque je lance mon application le premier datagrid affiche bien mes données mais lorsque je clique sur le second onglet, mon deuxième datagrid lui n'affiche rien, est-il possible donc d'initialiser un datagrid si il n'est pas affiché à l'écran?
xclue est déconnecté   Envoyer un message privé Réponse avec citation 00
Vieux 06/04/2011, 14h31   #6
Modérateur
 
Homme
Consultant Flex / Java
Inscription : novembre 2008
Messages : 452
Détails du profil
Informations personnelles :
Sexe : Homme
Âge : 28
Localisation : Luxembourg

Informations professionnelles :
Activité : Consultant Flex / Java
Secteur : High Tech - Éditeur de logiciels

Informations forums :
Inscription : novembre 2008
Messages : 452
Points : 637
Points : 637
Oui bien sûr,
passes ton arrayCollection à ta datagrid en dataprovider. Tu peux modifier l'arrayCollection où tu veux dans l'application (si tu y a accès). Ensuite comme la grid est bindée sur cet arrayCollection, elle sera remplie automatiquement avec les données de ton arrayCollection (même si celui-ci change).
__________________
N'oubliez pas avant de poster :
et bien sûr la doc Flex
Krazymins est déconnecté   Envoyer un message privé Réponse avec citation 00
Vieux 06/04/2011, 16h42   #7
Candidat au titre de Membre du Club
 
Inscription : juin 2007
Messages : 60
Détails du profil
Informations forums :
Inscription : juin 2007
Messages : 60
Points : 12
Points : 12
Merci beaucoup de votre aide
xclue est déconnecté   Envoyer un message privé Réponse avec citation 00
Réponse Proposer ce sujet en actualité Cette discussion est résolue.
Outils de la discussion



Fuseau horaire GMT +2. Il est actuellement 01h49.


 
 
 
 
Partenaires

Hébergement Web