IdentifiantMot de passe
Loading...
Mot de passe oublié ?Je m'inscris ! (gratuit)
Navigation

Inscrivez-vous gratuitement
pour pouvoir participer, suivre les réponses en temps réel, voter pour les messages, poser vos propres questions et recevoir la newsletter

ActionScript 3 Discussion :

AS3 fonction nombre variable de paramètres


Sujet :

ActionScript 3

  1. #1
    Membre régulier Avatar de Goldocrack
    Profil pro
    Inscrit en
    Novembre 2002
    Messages
    126
    Détails du profil
    Informations personnelles :
    Âge : 41
    Localisation : France

    Informations forums :
    Inscription : Novembre 2002
    Messages : 126
    Points : 112
    Points
    112
    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 : Sélectionner tout - Visualiser dans une fenêtre à part
    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.

  2. #2
    Membre régulier Avatar de Freyskeyd
    Homme Profil pro
    Développeur PHP | Flex
    Inscrit en
    Octobre 2007
    Messages
    87
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    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 : 87
    Points : 94
    Points
    94
    Par défaut
    SAlut,

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

    se comportent comme un Array.

  3. #3
    Membre régulier Avatar de Goldocrack
    Profil pro
    Inscrit en
    Novembre 2002
    Messages
    126
    Détails du profil
    Informations personnelles :
    Âge : 41
    Localisation : France

    Informations forums :
    Inscription : Novembre 2002
    Messages : 126
    Points : 112
    Points
    112
    Par défaut
    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.

  4. #4
    Membre émérite Avatar de Madfrix
    Profil pro
    Inscrit en
    Juin 2007
    Messages
    2 326
    Détails du profil
    Informations personnelles :
    Localisation : France, Gironde (Aquitaine)

    Informations forums :
    Inscription : Juin 2007
    Messages : 2 326
    Points : 2 566
    Points
    2 566
    Par défaut
    Bonjour,

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

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
     
    var params:Array = ["param1", 2, 8, "param4"];
     
    ExternalInterface.call(function, params.join(","));

  5. #5
    Membre régulier Avatar de Goldocrack
    Profil pro
    Inscrit en
    Novembre 2002
    Messages
    126
    Détails du profil
    Informations personnelles :
    Âge : 41
    Localisation : France

    Informations forums :
    Inscription : Novembre 2002
    Messages : 126
    Points : 112
    Points
    112
    Par défaut
    Impeccable ! Ça fonctionne !

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

    Merci à toi

  6. #6
    Membre régulier Avatar de Goldocrack
    Profil pro
    Inscrit en
    Novembre 2002
    Messages
    126
    Détails du profil
    Informations personnelles :
    Âge : 41
    Localisation : France

    Informations forums :
    Inscription : Novembre 2002
    Messages : 126
    Points : 112
    Points
    112
    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 : Sélectionner tout - Visualiser dans une fenêtre à part
    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 : Sélectionner tout - Visualiser dans une fenêtre à part
    maFonction(teste_moi_ca, tableau1, tableau2, tableau3);
    Côté Javascript
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    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

Discussions similaires

  1. Réponses: 5
    Dernier message: 11/08/2011, 14h12
  2. [T-SQL] Procédure à nombre variable de paramètres ?
    Par NeoMan dans le forum MS SQL Server
    Réponses: 6
    Dernier message: 28/12/2005, 15h07
  3. Réponses: 9
    Dernier message: 24/05/2005, 16h34
  4. Nombre variable de paramètres
    Par rolkA dans le forum C++
    Réponses: 12
    Dernier message: 10/10/2004, 15h44

Partager

Partager
  • Envoyer la discussion sur Viadeo
  • Envoyer la discussion sur Twitter
  • Envoyer la discussion sur Google
  • Envoyer la discussion sur Facebook
  • Envoyer la discussion sur Digg
  • Envoyer la discussion sur Delicious
  • Envoyer la discussion sur MySpace
  • Envoyer la discussion sur Yahoo