|
Publicité ' | |||||||||||||||||||||||
|
|
#1 | ||
|
Nouveau Membre du Club
![]() Inscription : août 2007 Messages : 131 ![]() |
Bonjour!
Vos compétences pourraient me sortir (encore une fois) du gouffre dans lequel je me mets assez fréquemment! Voilà le problème: Je créé n label à partir de n lignes retournées d'une requête select d'une bdd sqlite. Les labels sont créés, je leur donne un id mais je ne peux pas y faire référence ailleurs. Je pensais que c'était une histoire de portée. Mais même avec des fonctions publiques ça ne marche pas. Peut être que la fonction qui créé les label devraient les retourner? Voici le code correspondant: Code :
|
||
|
|
00
|
|
|
#2 | ||
|
Membre habitué
![]() Inscription : avril 2010 Messages : 124 ![]() |
Ton premier problème ici c'est que tes labels n'existent pas encore lorsque tu y fais référence dans ta fonction resultats_ration.
Flex fonctionne en asynchrone sur les appels distants. Déjà, j'ai jamais fonctionné comme tu le fais mais je suis surpris de l'ordre Code :
Bref, toujours est-il que tu demandes au serveur BD d’exécuter une requête et tu dis à ton client flex que sur le retour tu veux qu'il exécute la fonction CreerChps. Et dans la foulée, tu appelles resultats_ration. Mais à ce moment précis, le serveur n'a pas encore répondu (il est en train d’exécuter la requête) et CreerChps n'a pas encore été appelée, donc tes labels pas encore créés. Si ce que je te dis n'est pas clair, met un debug('coucou') au début de CreerChps et un debug('toto') au début de resultats_ration. Tu verras que toto arrive avant coucou. Appelle donc ta méthode resultats_ration à la fin de ta méthode CreerChps et ça marchera mieux. |
||
|
|
00
|
|
|
#3 | ||
|
Nouveau Membre du Club
![]() Inscription : août 2007 Messages : 131 ![]() |
Merci Clemoigno de ta réponse.
J'ai donc fait appel à resultats_ration à la fin de CreerChps mais ça ne change rien. Pire, avec un bouton j'appelle la fonction Btn1 et il ne reconnait toujours pas valBesoinF1 (Pourtant lab.Id créé valBesoin1 c'est étrange) Code :
|
||
|
|
00
|
|
|
#4 |
|
Nouveau Membre du Club
![]() Inscription : août 2007 Messages : 131 ![]() |
J'ai l'impression que c'est dans l'utilisation de addElement que le soucis vient.
Mais addChild ne fonctionne pas... En fait non, car le composant Label est un composant spark et est donc associé à la méthode addElement... |
|
|
00
|
|
|
#5 | |
|
Membre habitué
![]() Inscription : avril 2010 Messages : 124 ![]() |
Hello
Citation:
Essaie un truc genre Code :
(resRationT.getElementByName('valBesoinF1') as Label).text = 'toto' |
|
|
|
00
|
|
|
#6 | ||
|
Nouveau Membre du Club
![]() Inscription : août 2007 Messages : 131 ![]() |
Bien vu clemoigno!
Code :
|
||
|
|
00
|
|
|
#7 |
|
Membre habitué
![]() Inscription : avril 2010 Messages : 124 ![]() |
Arf bon j'ai jamais utilisé de composants Spark mais apparemment les containers spark ne gère pas le getChildByName().
Faut voir s'il y a un équivalent sur les containers sparks. Sinon peut-être peux tu utiliser un container mx plutôt que spark. Enfin peut-être peux-tu essayer d'accéder dynamiquement à ton objet en faisant Code :
(resRationT['valBesoinF1'] as Label).text = 'toto' |
|
|
00
|
|
|
#8 |
|
Nouveau Membre du Club
![]() Inscription : août 2007 Messages : 131 ![]() |
Non il n'en veut pas. Je n'ai même pas été capable de trouver cette doc (fort explicite) lol!
Va pour un programme avec l'id! Je te remercie! |
|
|
00
|
Copyright © 2000-2012 - www.developpez.com