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 :

Appel à fonction dynamique [CS4]


Sujet :

ActionScript 3

  1. #1
    Membre du Club
    Profil pro
    Inscrit en
    Mai 2009
    Messages
    73
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Mai 2009
    Messages : 73
    Points : 60
    Points
    60
    Par défaut Appel à fonction dynamique
    Bonjour,
    mon problème réside dans l'appel de fonction de façon dynamique, je génère un numéro aléatoire trois fois de suite, il ne peut y avoir de doublon, je cherche ensuite à appeler une fonction suivant le numéro choisis (une fonction d'instanciation d'objet)

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
     
    var nomvariable : String = 'l_' + total_legume[i] + '()';
    var legume_add:MovieClip = new nomvariable;
    si vous avez une idée je suis preneur, sinon je me tournerais vers un switch.

    Merci d'avance

  2. #2
    Rédacteur/Modérateur
    Avatar de beekeep
    Homme Profil pro
    Développeur informatique
    Inscrit en
    Octobre 2006
    Messages
    2 005
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 38
    Localisation : France, Haute Garonne (Midi Pyrénées)

    Informations professionnelles :
    Activité : Développeur informatique

    Informations forums :
    Inscription : Octobre 2006
    Messages : 2 005
    Points : 3 325
    Points
    3 325
    Par défaut
    Bonjour,

    il faut définir un objet Class puis instancier l'objet de la façon suivante :
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    var targetClass:Class = ...;
    var legume_add:MovieClip = new targetClass() as MovieClip;
    doc Class

  3. #3
    Membre du Club
    Profil pro
    Inscrit en
    Mai 2009
    Messages
    73
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Mai 2009
    Messages : 73
    Points : 60
    Points
    60
    Par défaut
    merci pour cette rapidité, en effet je pense que la solution est là, cependant j'ai une erreur : 1067: Contrainte implicite d'une valeur du type String vers un type sans rapport Class.

    je te remets le code

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
     
    var nomvariable:Class = $choix +'_' +nb_random;
    var objet_add:MovieClip = new nomvariable() as MovieClip;

  4. #4
    Rédacteur/Modérateur
    Avatar de beekeep
    Homme Profil pro
    Développeur informatique
    Inscrit en
    Octobre 2006
    Messages
    2 005
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 38
    Localisation : France, Haute Garonne (Midi Pyrénées)

    Informations professionnelles :
    Activité : Développeur informatique

    Informations forums :
    Inscription : Octobre 2006
    Messages : 2 005
    Points : 3 325
    Points
    3 325
    Par défaut
    il faut définir l'objet Class qui n'est pas une simple chaine de caractères ..

    voir getClassByAlias :
    http://help.adobe.com/en_US/FlashPla...1&filter_air=2

  5. #5
    Membre du Club
    Profil pro
    Inscrit en
    Mai 2009
    Messages
    73
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Mai 2009
    Messages : 73
    Points : 60
    Points
    60
    Par défaut
    Oki, je vois, j'ai en effet réussi à l'utiliser, mais le truc c'est que j’essaye d'instancier un nouvel objet qui se trouve dans ma bibliothèque via les liaisons. Est ce que cette méthode permet ça ? Car j'ai une erreur qui me dit qu'il ne trouve pas la classe (après verif la liaison existe bien).

  6. #6
    Rédacteur/Modérateur
    Avatar de beekeep
    Homme Profil pro
    Développeur informatique
    Inscrit en
    Octobre 2006
    Messages
    2 005
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 38
    Localisation : France, Haute Garonne (Midi Pyrénées)

    Informations professionnelles :
    Activité : Développeur informatique

    Informations forums :
    Inscription : Octobre 2006
    Messages : 2 005
    Points : 3 325
    Points
    3 325
    Par défaut
    car il faut avoir appelé le registerClassAlias avant, sinon il y a la méthode getDefinitionByName.

    tout est dans la doc

  7. #7
    Membre du Club
    Profil pro
    Inscrit en
    Mai 2009
    Messages
    73
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Mai 2009
    Messages : 73
    Points : 60
    Points
    60
    Par défaut
    Yes le getDefinitionByName fonctionne niquel, ca évite d'avoir de très long switch merci beaucoup !!

+ Répondre à la discussion
Cette discussion est résolue.

Discussions similaires

  1. Appel à une fonction dynamiquement
    Par PatSan dans le forum VBA Access
    Réponses: 1
    Dernier message: 20/11/2012, 19h45
  2. appel de fonction dynamique
    Par amateur_will dans le forum ActionScript 3
    Réponses: 1
    Dernier message: 03/07/2008, 11h11
  3. Comment appeller une fonction dynamiquement, à partir d'un argument
    Par Invité dans le forum Général JavaScript
    Réponses: 4
    Dernier message: 23/04/2006, 16h47
  4. Appels fonctions DLL
    Par Micka91 dans le forum Autres éditeurs
    Réponses: 1
    Dernier message: 17/02/2004, 17h32
  5. Appel fonction assembleur en C
    Par grandjouff dans le forum C
    Réponses: 6
    Dernier message: 07/12/2003, 20h43

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