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 11/08/2011, 00h35   #1
Membre régulier
 
Avatar de Goldocrack
 
Inscription : novembre 2002
Messages : 120
Détails du profil
Informations personnelles :
Âge : 28

Informations forums :
Inscription : novembre 2002
Messages : 120
Points : 83
Points : 83
Par défaut AS3 fonction nombre variable de paramètres

Bonjour,

Je cherche à transmettre à une fonction interne à l'AS3 (en l’occurrence ExternalInterface.call) qui reçoit un nombre variable de paramètres les paramètres que je reçois d'une fonction ayant elle-même un nombre variable de paramètres.

Explication en code :
Code :
1
2
3
4
5
6
7
//maFonction reçoit un nombre variable de paramètres
function maFonction(varATester:String, ... parametre:*):void {
   //code coupé : ici plusieurs traitements et vérifications sur varATester
 
   //ensuite si les tests sont concluants on envoie à la fonction concernée et les paramètres
   ExternalInterface.call(varATester, LES PARAMETRES);
}
Comment puis-je passer les différents paramètres que je reçoit à cette fonction ExternalInterface ???

Merci de votre aide.
__________________
  • Un langage de programmation est censé être une façon conventionnelle de donner des ordres à un ordinateur. Il n'est pas censé être obscur, bizarre et plein de pièges subtils (ça ce sont les attributs de la magie). [Dave Small]
  • Un programme c'est un sort que l'on jette à un ordinateur et qui se transforme en messages d'erreur.
  • Codez en pensant que celui qui maintiendra votre code est un psychopathe qui connait votre adresse.

et ne sont pas des options...
Goldocrack est déconnecté   Envoyer un message privé Réponse avec citation 00
Vieux 17/08/2011, 15h33   #2
Membre du Club
 
Avatar de Freyskeyd
 
Homme Simon Paitrault
Développeur PHP | Flex
Inscription : octobre 2007
Messages : 74
Détails du profil
Informations personnelles :
Nom : Homme Simon Paitrault
Localisation : France, Loire Atlantique (Pays de la Loire)

Informations professionnelles :
Activité : Développeur PHP | Flex
Secteur : High Tech - Multimédia et Internet

Informations forums :
Inscription : octobre 2007
Messages : 74
Points : 53
Points : 53
SAlut,

les paramètres de type argumentMultiples comme ton ... parametre:*

se comportent comme un Array.
Freyskeyd est déconnecté   Envoyer un message privé Réponse avec citation 00
Vieux 18/08/2011, 12h03   #3
Membre régulier
 
Avatar de Goldocrack
 
Inscription : novembre 2002
Messages : 120
Détails du profil
Informations personnelles :
Âge : 28

Informations forums :
Inscription : novembre 2002
Messages : 120
Points : 83
Points : 83
Citation:
Envoyé par Freyskeyd Voir le message
les paramètres de type argumentMultiples comme ton ... parametre:* se comportent comme un Array.
Justement, si je passe mon (ou "mes" puisque le nombre est inconnu) paramètre(s) tel quel à ExternalInterface.call il lève une erreur car il reçoit un Array alors qu'il attend un ou des paramètres.

Il faudrait que j'arrive à faire une boucle sur mon nombre de paramètre inconnu afin de les renvoyer à ExternalInterface.
__________________
  • Un langage de programmation est censé être une façon conventionnelle de donner des ordres à un ordinateur. Il n'est pas censé être obscur, bizarre et plein de pièges subtils (ça ce sont les attributs de la magie). [Dave Small]
  • Un programme c'est un sort que l'on jette à un ordinateur et qui se transforme en messages d'erreur.
  • Codez en pensant que celui qui maintiendra votre code est un psychopathe qui connait votre adresse.

et ne sont pas des options...
Goldocrack est déconnecté   Envoyer un message privé Réponse avec citation 00
Vieux 18/08/2011, 15h21   #4
Membre Expert
 
Avatar de Madfrix
 
Inscription : juin 2007
Messages : 2 278
Détails du profil
Informations personnelles :
Localisation : France, Gironde (Aquitaine)

Informations forums :
Inscription : juin 2007
Messages : 2 278
Points : 2 324
Points : 2 324
Bonjour,

il faudrait faire je pense un tableau recensant tous tes paramètre, puis faire un join dessus :

Code :
1
2
3
4
 
var params:Array = ["param1", 2, 8, "param4"];
 
ExternalInterface.call(function, params.join(","));
__________________
Je ne réponds pas aux questions envoyées par mp
Madfrix est déconnecté   Envoyer un message privé Réponse avec citation 10
Vieux 18/08/2011, 16h20   #5
Membre régulier
 
Avatar de Goldocrack
 
Inscription : novembre 2002
Messages : 120
Détails du profil
Informations personnelles :
Âge : 28

Informations forums :
Inscription : novembre 2002
Messages : 120
Points : 83
Points : 83
Impeccable ! Ça fonctionne !

(A confirmer sur le long terme suivant les paramètres tout de même)

Merci à toi
__________________
  • Un langage de programmation est censé être une façon conventionnelle de donner des ordres à un ordinateur. Il n'est pas censé être obscur, bizarre et plein de pièges subtils (ça ce sont les attributs de la magie). [Dave Small]
  • Un programme c'est un sort que l'on jette à un ordinateur et qui se transforme en messages d'erreur.
  • Codez en pensant que celui qui maintiendra votre code est un psychopathe qui connait votre adresse.

et ne sont pas des options...
Goldocrack est déconnecté   Envoyer un message privé Réponse avec citation 00
Vieux 20/08/2011, 00h54   #6
Membre régulier
 
Avatar de Goldocrack
 
Inscription : novembre 2002
Messages : 120
Détails du profil
Informations personnelles :
Âge : 28

Informations forums :
Inscription : novembre 2002
Messages : 120
Points : 83
Points : 83
Par défaut ré-ouverture

Je ré-ouvre le sujet car après test sur le long terme, ça ne fonctionne pas comme ça devrait...

voici donc ma fonction après modification :

Code :
1
2
3
maFonction(varATester:String, ... parametre:*):void {
	ExternalInterface.call(fonctionJS, parametre.join(","));
}
du coup, logiquement d'ailleurs, toutes mes variables se retrouvent concaténées dans la première... pas cool

exemple :

Côté ActionScript 3
Code :
maFonction(teste_moi_ca, tableau1, tableau2, tableau3);
Côté Javascript
Code :
1
2
3
4
5
function fonctionJS(tab1, tab2, tab3) {
	console.log(tab1);
	console.log(tab2);
	console.log(tab3);
}
Résultat : toutes les données sont affichés à la ligne console.log(tab1); les 2 autres lignes ne donne rien.

L'idée est bien d'envoyer le même nombre de paramètres que celui que je reçois.

Merci de votre aide à nouveau
__________________
  • Un langage de programmation est censé être une façon conventionnelle de donner des ordres à un ordinateur. Il n'est pas censé être obscur, bizarre et plein de pièges subtils (ça ce sont les attributs de la magie). [Dave Small]
  • Un programme c'est un sort que l'on jette à un ordinateur et qui se transforme en messages d'erreur.
  • Codez en pensant que celui qui maintiendra votre code est un psychopathe qui connait votre adresse.

et ne sont pas des options...
Goldocrack est déconnecté   Envoyer un message privé Réponse avec citation 00
Réponse Proposer ce sujet en actualité
Outils de la discussion



Fuseau horaire GMT +2. Il est actuellement 09h03.


 
 
 
 
Partenaires

Hébergement Web