Précédent   Forum des professionnels en informatique > Webmasters - Développement Web > Flash/Flex > Flash > AS3
AS3 Questions relatives à la programmation ActionScript 3 (Cours AS3)
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 04/10/2011, 10h21   #1
Nouveau Membre du Club
 
Inscription : août 2007
Messages : 131
Détails du profil
Informations forums :
Inscription : août 2007
Messages : 131
Points : 37
Points : 37
Par défaut Portée d'un tableau

Bonjour,
"petite" question pour vous je suis sûr! (moi ça fait 2 jours que j'essaie de la solutionner !)

Dans une fonction A, je créé un tableau "tablo". Ensuite je passe une requête sql via un addEventListener.
La fonction B écoute (asynchrone) et créée une arrayCollection : "besoins".
La suite de la fonction A appelle une fonction C avec le tableau "tablo" en paramètre. Comment puis-je récupérer le tableau créé dans la fonction B?

En fait, la fonction C n'est pas vraiment utile, mais comme on ne peut pas passer de paramètre en appelant B je n'ai pas le choix. Comment faire? Un événement personnalisé me débloquerait-il?

Code :
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
[Bindable]private var besoins:ArrayCollection = new ArrayCollection();
 
private function A():void{
        //création tablo()
        sqls =new SQLStatement();
	sqls.sqlConnection = sqlc;
	sqls.text = "select num_besoinF,cparateur,lbl_comm,marg,qte from JOINT_PARAM where num_profil=1 and num_patho=1;";
	sqls.execute();
	sqls.addEventListener(SQLEvent.RESULT, B);
	C(tablo);
}
private function B(e:SQLEvent):void
{
	var data:Array = sqls.getResult().data;
	besoins = new ArrayCollection(data);
}
private function C(tablo:Array):void{
	var bes:uint;
	bes=besoins.length;
	Alert.show(""+bes); 
//Me renvoie 0 alors que si je mets ce code dans B, me renvoie 41
}
granchef est déconnecté   Envoyer un message privé Réponse avec citation 00
Vieux 04/10/2011, 11h53   #2
Membre habitué
 
Inscription : avril 2010
Messages : 124
Détails du profil
Informations forums :
Inscription : avril 2010
Messages : 124
Points : 135
Points : 135
Hello,

Tu as plusieurs possibilités peut-être un peu plus simple que de passer par un custom event comme de positionner tablo comme membre de ta classe. Ainsi il sera accessible de partout. Ou encore de passer par une fonction anonyme pour B.

Premier cas :
Code :
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
 
[Bindable]private var besoins:ArrayCollection = new ArrayCollection();
 
var tablo:TypeDeTablo;
 
private function A():void{
        //<s>création </s>affectation tablo()
        sqls =new SQLStatement();
	sqls.sqlConnection = sqlc;
	sqls.text = "select num_besoinF,cparateur,lbl_comm,marg,qte from JOINT_PARAM where num_profil=1 and num_patho=1;";
	sqls.execute();
	sqls.addEventListener(SQLEvent.RESULT, B);
	C(tablo);
}
private function B(e:SQLEvent):void
{
	var data:Array = sqls.getResult().data;
	besoins = new ArrayCollection(data);	
	Alert.show(besoins.length); 
        // Ton objet tablo est accessible ici
 
}
Deuxième cas :

Code :
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
[Bindable]private var besoins:ArrayCollection = new ArrayCollection();
 
private function A():void{
        //création tablo()
        sqls =new SQLStatement();
	sqls.sqlConnection = sqlc;
	sqls.text = "select num_besoinF,cparateur,lbl_comm,marg,qte from JOINT_PARAM where num_profil=1 and num_patho=1;";
	sqls.execute();
	sqls.addEventListener(SQLEvent.RESULT, function(e:SQLEvent){
        	var data:Array = sqls.getResult().data;
                besoins = new ArrayCollection(data);	
         	Alert.show(besoins.length); 
                // Ton objet tablo est accessible ici               
        });	
}
}
Charles.
clemoigno est déconnecté   Envoyer un message privé Réponse avec citation 00
Vieux 04/10/2011, 12h00   #3
Nouveau Membre du Club
 
Inscription : août 2007
Messages : 131
Détails du profil
Informations forums :
Inscription : août 2007
Messages : 131
Points : 37
Points : 37
Excellent!
Tu imbriques la fonction directement dans le addEventListener.
Mais comment veux-tu que je trouve ça tout seul mdr! (Je regarde la 1ère méthode maintenant)

Merci à toi pour ta précieuse ( à la Golum) aide!
granchef 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 04h01.


 
 
 
 
Partenaires

Hébergement Web