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

Flash Discussion :

[FLASH MX2004] Utiliser une variable dans le code


Sujet :

Flash

  1. #21
    Membre confirmé Avatar de ekameleon
    Profil pro
    Inscrit en
    Juillet 2005
    Messages
    401
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Juillet 2005
    Messages : 401
    Points : 483
    Points
    483
    Par défaut
    tu as rien compris à ce que j'ai expliqué avant alors
    Bon je t'ai expliqué que tu peux créer une variable ou plusieurs, dynamiquement sur tes objets (c'est la force de l'actionscript)
    Quand ta boucle s'incrémente.. i est une variable temporaire qui change dans le temps..... donc forcément le bt il va pas se rappeler que i vallait 1 mais il va chercher la valeur de i.. une fois que la boucle est finie elle vaut 5 ! (condition de fin de la boucle)

    Pour éviter ce genre de problème il suffit de stocker en mémoire pour chaque bouton dans une propriété dynamique la valeur courante de i quand on créer ou qu'on utilise le bouton dans la boucle....
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    12
    13
    14
    15
     
    var action = function (id:Number) {
         trace ("link + " : + id) ;
    }
    var nBts:Number = 5;
    // nombres de boutons
    for (var i = 1; i<nBts; i++) {
       var bt:MovieClip = this["bt"+i];
       bt.index = i ; // index c'est le nom que je donne à ma propriété dynamique.. je mets le nom que je veux
       bt.onRollOver = fadeOut;
       bt.onRollOut = fadeIn;
       bt.onPress = function () {
          action ( this.index) ; // là je retrouve en mémoire ma propriété index...
       }
    }
    faut pas oublier que quand tu appuis sur le bouton... les instructions dans la boucle for.. cela fait un bon moment qu'elles ont étaient exécutées....

    EKA+

  2. #22
    Rédacteur

    Avatar de arnolem
    Profil pro
    Inscrit en
    Février 2005
    Messages
    2 856
    Détails du profil
    Informations personnelles :
    Âge : 39
    Localisation : France, Seine Maritime (Haute Normandie)

    Informations professionnelles :
    Secteur : High Tech - Multimédia et Internet

    Informations forums :
    Inscription : Février 2005
    Messages : 2 856
    Points : 6 114
    Points
    6 114
    Par défaut
    merci pour la 2ème couche, en fait je cible bien le problème mais je ne trouvais pas comment le resoudre. Merci je vais me réentrainer sur ce point.
    Un autre truc ou j'ai du mal c'est la dessus:
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    12
     
    var var1:String = "hello"
    var nBts:Number = 5;
    for (var i = 1; i<nBts; i++) {
    	var bt:MovieClip = this["bt"+i];
    	bt.index = "var"+i;
    	bt.onRollOver = fadeOut;
    	bt.onRollOut = fadeIn;
    	bt.onPress = function() {
    		trace(this.index);
    	};
    }
    j'ai essayé plusieur truc mais je n'arrive pas à avoir "hello", je récupère le nom de ma variable en fait.

  3. #23
    Rédacteur

    Avatar de arnolem
    Profil pro
    Inscrit en
    Février 2005
    Messages
    2 856
    Détails du profil
    Informations personnelles :
    Âge : 39
    Localisation : France, Seine Maritime (Haute Normandie)

    Informations professionnelles :
    Secteur : High Tech - Multimédia et Internet

    Informations forums :
    Inscription : Février 2005
    Messages : 2 856
    Points : 6 114
    Points
    6 114
    Par défaut
    enfin, j'ai trouvé en faisant ça :

    mais il y a t'il une autre solution?

  4. #24
    Membre confirmé Avatar de ekameleon
    Profil pro
    Inscrit en
    Juillet 2005
    Messages
    401
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Juillet 2005
    Messages : 401
    Points : 483
    Points
    483
    Par défaut
    Hello

    Tu récupère pas le nom de la variable mais une chaine de caractère qui est le résultat de la concaténation de la chaine "var" avec un nombre

    En corrigeant super simplement ton code on obtient :
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    12
    13
    14
     
    var message:String = "hello" ;
     
    var nBts:Number = 5;
    for (var i = 1; i<nBts; i++) {
       var bt:MovieClip = this["bt"+i];
       bt.index = message + i ;
       trace (i + " : " + bt.index) ; // petit test en passant
       bt.onRollOver = fadeOut;
       bt.onRollOut = fadeIn;
       bt.onPress = function() {
          trace(this.index);
       }
    }
    PS : en général c'est encore une question de gout.. mais je ne mets jamais de ; aprés une } à part si je déclare un objet de type Object
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
     
    var vecteur = { x:25 , y:150 } ; // exception qui confirme la règle lol
    EKA+

  5. #25
    Rédacteur

    Avatar de arnolem
    Profil pro
    Inscrit en
    Février 2005
    Messages
    2 856
    Détails du profil
    Informations personnelles :
    Âge : 39
    Localisation : France, Seine Maritime (Haute Normandie)

    Informations professionnelles :
    Secteur : High Tech - Multimédia et Internet

    Informations forums :
    Inscription : Février 2005
    Messages : 2 856
    Points : 6 114
    Points
    6 114
    Par défaut
    bon ben merci pour la leçon de programmation et de style, pour le ; c'est pas moi mais flash qui le met tout seul.
    Bon ben si je peux t'aider (je ne pense pas mais) n'hésite pas à me demander, je te dois 3 heures de mon temps.

  6. #26
    Membre confirmé Avatar de ekameleon
    Profil pro
    Inscrit en
    Juillet 2005
    Messages
    401
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Juillet 2005
    Messages : 401
    Points : 483
    Points
    483
    Par défaut
    Faut se méfier de flash quand tu code ... faut pas lui laisser prendre la main Pour coder je te conseille progressivement d'utiliser un éditeur externe comme SEPY
    EKA+

+ Répondre à la discussion
Cette discussion est résolue.
Page 2 sur 2 PremièrePremière 12

Discussions similaires

  1. [VBA-E]Utiliser une variable dans une formule
    Par bossu dans le forum Macros et VBA Excel
    Réponses: 12
    Dernier message: 04/06/2006, 15h25
  2. Réponses: 2
    Dernier message: 27/03/2006, 12h59
  3. [vb.net] utilisation d'une variable dans le code
    Par arnolem dans le forum Windows Forms
    Réponses: 9
    Dernier message: 30/09/2005, 19h22
  4. Réponses: 3
    Dernier message: 06/07/2005, 11h27
  5. Réponses: 6
    Dernier message: 14/12/2004, 02h47

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