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 1 & ActionScript 2 Discussion :

this["variable"+i].onRollOver = function(){ etc.


Sujet :

ActionScript 1 & ActionScript 2

  1. #1
    Membre averti
    Inscrit en
    Mai 2007
    Messages
    22
    Détails du profil
    Informations forums :
    Inscription : Mai 2007
    Messages : 22
    Par défaut this["variable"+i].onRollOver = function(){ etc.
    Bonjour à tous,

    Voilà je me bat avec ce code depuis ce matin, j'ai réussi à le faire marcher en dehors d'une boucle, mais dans la boucle il ne veut rien savoir. (alpha1 vaut 50 et alpha2 vaut 100, et nbboucle vaut 11).

    Le code qui ne marche pas :
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    for(i = nbboucle; i > 0; i--){
    	this["pion"+i].onRollOver = function(){ this["pion"+i]._alpha = alpha1; }
    	this["pion"+i].onRollOut = function(){ this["pion"+i]._alpha = alpha2; }
    }
    Le code qui marche :
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    12
    13
    onEnterFrame = function(){
    	pion1.onRollOver = function(){ pion1._alpha = alpha1; }; pion1.onRollOut = function(){ pion1._alpha = alpha2; }
    	pion2.onRollOver = function(){ pion2._alpha = alpha1; }; pion2.onRollOut = function(){ pion2._alpha = alpha2; }
    	pion3.onRollOver = function(){ pion3._alpha = alpha1; }; pion3.onRollOut = function(){ pion3._alpha = alpha2; }
    	pion4.onRollOver = function(){ pion4._alpha = alpha1; }; pion4.onRollOut = function(){ pion4._alpha = alpha2; }
    	pion5.onRollOver = function(){ pion5._alpha = alpha1; }; pion5.onRollOut = function(){ pion5._alpha = alpha2; }
    	pion6.onRollOver = function(){ pion6._alpha = alpha1; }; pion6.onRollOut = function(){ pion6._alpha = alpha2; }
    	pion7.onRollOver = function(){ pion7._alpha = alpha1; }; pion7.onRollOut = function(){ pion7._alpha = alpha2; }
    	pion8.onRollOver = function(){ pion8._alpha = alpha1; }; pion8.onRollOut = function(){ pion8._alpha = alpha2; }
    	pion9.onRollOver = function(){ pion9._alpha = alpha1; }; pion9.onRollOut = function(){ pion9._alpha = alpha2; }
    	pion10.onRollOver = function(){ pion10._alpha = alpha1; }; pion10.onRollOut = function(){ pion10._alpha = alpha2; }
    	pion11.onRollOver = function(){ pion11._alpha = alpha1; }; pion11.onRollOut = function(){ pion11._alpha = alpha2; }
    }
    Vous voyez pourquoi ? Merci d'avance !

    A noter que j'ai aussi essayer ça :
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    for(i = nbboucle; i > 0; i--){
    	this["pion"+i].onRollOver = function(){ this._alpha = alpha1; }
    	this["pion"+i].onRollOut = function(){ this._alpha = alpha2; }
    }
    puis ça :
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    for(i = nbboucle; i > 0; i--){
    	OnEnterFrame = function(){ this["pion"+i].onRollOver = function(){ this._alpha = alpha1; } }
    	OnEnterFrame = function(){  this["pion"+i].onRollOut = function(){ this._alpha = alpha2; } }
    }
    et que ça n'a pas non plus marché.

    Merci d'avance et bonne année au passage !

  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 : 40
    Localisation : France, Haute Garonne (Midi Pyrénées)

    Informations professionnelles :
    Activité : Développeur informatique

    Informations forums :
    Inscription : Octobre 2006
    Messages : 2 005
    Par défaut
    Salut,

    as-tu tracé les valeurs des variables pour voir d'ou vient le problème ?

    il faudrait définir les variables alpha1 et alpha2 dans le _root ou le _global pour pouvoir y accéder sans delegate.

    ex:

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    for(i = nbboucle; i > 0; i--)
    {
        this["pion"+i].onRollOver = function(){ this._alpha = _root.alpha1; };
        this["pion"+i].onRollOut = function(){ this._alpha = _root.alpha2; };
    }

  3. #3
    Membre averti
    Inscrit en
    Mai 2007
    Messages
    22
    Détails du profil
    Informations forums :
    Inscription : Mai 2007
    Messages : 22
    Par défaut
    Déjà merci beaucoup d'avoir pris le temps de répondre.

    Malheuresement ça ne marche pas. J'avais fait l'essai avant avec des valeurs fixe en remplaçant "alpha1" par 50 et "alpha2" par 100 directement et ça ne marchait pas non plus.

    Tu vois autres chose qui pourrait faire bugger le script ?

  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 : 40
    Localisation : France, Haute Garonne (Midi Pyrénées)

    Informations professionnelles :
    Activité : Développeur informatique

    Informations forums :
    Inscription : Octobre 2006
    Messages : 2 005
    Par défaut
    Lut,

    pour voir d'ou vient le problème il faut utiliser la fonction trace.

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    for(i = nbboucle; i > 0; i--)
    {
        trace( this["pion"+i] );
        this["pion"+i].onRollOver = function()
        {
          trace( "roll over : " + this );
        };
    }
    +

  5. #5
    Membre averti
    Inscrit en
    Mai 2007
    Messages
    22
    Détails du profil
    Informations forums :
    Inscription : Mai 2007
    Messages : 22
    Par défaut
    Rebonjour, encore merci de m'aider. Le code que tu m'as fourni, renvoi ceci ? Celà te permet il de mieux comprendre mon problème ?

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    _level0.pion11
    _level0.pion10
    _level0.pion9
    _level0.pion8
    _level0.pion7
    _level0.pion6
    _level0.pion5
    _level0.pion4
    _level0.pion3
    _level0.pion2
    _level0.pion1
    Au passage, merci pour le conseil avec le "trace" je suis tout débutant en actionscript et des petites astuces comme ça, ça m'aide beaucoup.

    Encore merci d'avance.

  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 : 40
    Localisation : France, Haute Garonne (Midi Pyrénées)

    Informations professionnelles :
    Activité : Développeur informatique

    Informations forums :
    Inscription : Octobre 2006
    Messages : 2 005
    Par défaut
    Lut,

    en effet, cela permet de voir que le this["pion"+i] renvoi bien un clip donc pas de pb.

    et lors du rollOver qu'es-ce qui est tracé ?

  7. #7
    Membre averti
    Inscrit en
    Mai 2007
    Messages
    22
    Détails du profil
    Informations forums :
    Inscription : Mai 2007
    Messages : 22
    Par défaut
    Le rollover je viens de tester il ne renvoit rien du tout même pas "roll over : ".

    Tu y comprends quelque chose ?

  8. #8
    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 : 40
    Localisation : France, Haute Garonne (Midi Pyrénées)

    Informations professionnelles :
    Activité : Développeur informatique

    Informations forums :
    Inscription : Octobre 2006
    Messages : 2 005
    Par défaut
    tu peux essayer comme ça :

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
     
    var oClip:MovieClip = this["pion"+i];
    oClip.onRollOver = function()
    {
      trace("\o/");
    };
    +

  9. #9
    Membre averti
    Inscrit en
    Mai 2007
    Messages
    22
    Détails du profil
    Informations forums :
    Inscription : Mai 2007
    Messages : 22
    Par défaut
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    for(i = nbboucle; i > 0; i--)
    {
    	var oClip:MovieClip = this["pion"+i];
    	trace( oClip );
    	oClip.onRollOver = function(){ trace("\o/"); }
    }
    J'ai essayé avec ce code, et ça me renvoi ça :

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    _level0.pion11
    _level0.pion10
    _level0.pion9
    _level0.pion8
    _level0.pion7
    _level0.pion6
    _level0.pion5
    _level0.pion4
    _level0.pion3
    _level0.pion2
    _level0.pion1
    Et le onRollOver ne marche pas, il ne renvoi pas "\o/".

    Merci encore de prendre de ton temps pour m'aider.

  10. #10
    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 : 40
    Localisation : France, Haute Garonne (Midi Pyrénées)

    Informations professionnelles :
    Activité : Développeur informatique

    Informations forums :
    Inscription : Octobre 2006
    Messages : 2 005
    Par défaut
    je pense pas que ça cause d'erreur mais il faut un point virgule à la finc de toutes tes instructions.

    (rollOver = ..)

  11. #11
    Membre averti
    Inscrit en
    Mai 2007
    Messages
    22
    Détails du profil
    Informations forums :
    Inscription : Mai 2007
    Messages : 22
    Par défaut
    Effectivement tu as raison ça n'a rien changé. Pour toi le code semble bon ?

    Tu veux le .fla et le .as pour regarder ?

  12. #12
    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 : 40
    Localisation : France, Haute Garonne (Midi Pyrénées)

    Informations professionnelles :
    Activité : Développeur informatique

    Informations forums :
    Inscription : Octobre 2006
    Messages : 2 005
    Par défaut
    pourquoi pas, je regaredrai ce soir.

    tu es bien en Flash 8 ?

  13. #13
    Membre averti
    Inscrit en
    Mai 2007
    Messages
    22
    Détails du profil
    Informations forums :
    Inscription : Mai 2007
    Messages : 22
    Par défaut
    Oui et bien c'est sympa de ta part, je te l'envoi sur ton mail. Merci encore.

  14. #14
    Membre Expert Avatar de dom_dev
    Profil pro
    Inscrit en
    Février 2006
    Messages
    2 073
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Février 2006
    Messages : 2 073
    Par défaut
    bonjour,

    j'ai suivit vos post par curiosité et l'exemple de beekeep marche très bien...
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    for(i = nbboucle; i > 0; i--)
    {
        trace( this["pion"+i] );
        this["pion"+i].onRollOver = function()
        {
          trace( "roll over : " + this );
        };
    }
    l'exemple :
    Pièce jointe 23761

  15. #15
    Membre averti
    Inscrit en
    Mai 2007
    Messages
    22
    Détails du profil
    Informations forums :
    Inscription : Mai 2007
    Messages : 22
    Par défaut
    Oui ton script marche. Mais moi dans mon code je gènère dynamiquement le clip. Et lorsque je test (beepkeep pourra attester je lui ai envoyé le code), la main indiquant un bouton ne s'affiche même pas au passage de ma souris sur le clip "pion1" créé dynamiquement.

    Ca pourrait venir de là ?

  16. #16
    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 : 40
    Localisation : France, Haute Garonne (Midi Pyrénées)

    Informations professionnelles :
    Activité : Développeur informatique

    Informations forums :
    Inscription : Octobre 2006
    Messages : 2 005
    Par défaut
    Citation Envoyé par Vantik
    Ca pourrait venir de là ?
    tu n'a qu'à tester ;)

    par exemple place un clip à la main dans ton anim, nomme la puis applique le bout de code dessus.

    si tu arrive à tracer le clip sans que le rollOver fonctionne on cherchera ..

    +


    PS: je peux pas tester de toute façon avec tes fichiers.

  17. #17
    Membre Expert Avatar de dom_dev
    Profil pro
    Inscrit en
    Février 2006
    Messages
    2 073
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Février 2006
    Messages : 2 073
    Par défaut
    bonjour,
    effectivement si c'est la seule différence cela vient de là, maintenant savoir pourquoi est une autre histoire...

  18. #18
    Membre averti
    Inscrit en
    Mai 2007
    Messages
    22
    Détails du profil
    Informations forums :
    Inscription : Mai 2007
    Messages : 22
    Par défaut
    Je n'ai pas suffisament de connaissance dans le language pour déterminé seul si celà vient de mon code. Voici mon code de création des clips qui me servent dans cette page :

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    // Importation des joueurs
    for(i = nbjoueurs; i > 0; i--){
    	createEmptyMovieClip("pion"+i, _root.getNextHighestDepth());
    	this["pion"+i].loadMovie("img/pions/"+this["img_j"+i]); this["pion"+i]._x = this["pos_pion"+i][0]; this["pion"+i]._y = this["pos_pion"+i][1];
    	trace(this["pion"+i]);
    }
    Et le trace renvoi :

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    _level0.pion11
    _level0.pion10
    _level0.pion9
    _level0.pion8
    _level0.pion7
    _level0.pion6
    _level0.pion5
    _level0.pion4
    _level0.pion3
    _level0.pion2
    _level0.pion1
    Et ensuite je créé mes RollOver dans une nouvelle boucle, ainsi :

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
     
    // Création des RollOver
    for(i = nbjoueurs; i > 0; i--){
    	this["pion"+i].onRollOver = function(){ this["pion"+i]._alpha = _root.alpha1; }
    	this["pion"+i].onRollOut = function(){ this["pion"+i]._alpha = _root.alpha2; }
    }
    Merci bien de m'avoir aidé jusqu'ici les gars en tous cas.

  19. #19
    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 : 40
    Localisation : France, Haute Garonne (Midi Pyrénées)

    Informations professionnelles :
    Activité : Développeur informatique

    Informations forums :
    Inscription : Octobre 2006
    Messages : 2 005
    Par défaut
    Salut,

    pour ne pas utiliser le this["pion"+i] lors de la creation des rollOver/Out je te propose ceci :

    creation des clip dans un clip conteneur :
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    // Importation des joueurs
    _level0.createEmptyMovieClip("conteneur", _level0.getNextHighestDepth());
    for(i = nbjoueurs; i > 0; i--)
    {
        _level0.conteneur.createEmptyMovieClip("pion"+i, _level0.conteneur.getNextHighestDepth());
        _level0.conteneur["pion"+i].loadMovie("img/pions/"+this["img_j"+i]);
        _level0.conteneur["pion"+i]._x = this["pos_pion"+i][0];
        _level0.conteneur["pion"+i]._y = this["pos_pion"+i][1];
        trace(_level0.conteneur["pion"+i]);
    }
    création des évenements :
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    for (i in _level0.conteneur)
    {
     if (_level0.conteneur[i] instanceof MovieClip)
     {
      trace(_level0.conteneur[i]._name);
      _level0.conteneur[i].onRollOver = function()
      {
       trace(this);
      };
     }
    }
    ;)

  20. #20
    Membre averti
    Inscrit en
    Mai 2007
    Messages
    22
    Détails du profil
    Informations forums :
    Inscription : Mai 2007
    Messages : 22
    Par défaut
    Merci encore pour ta patience. Il y a toujours un soucis car le rollover ne fonctionne pas.

    Le premier trace renvoi ceci :
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    _level0.pion11
    _level0.pion10
    _level0.pion9
    _level0.pion8
    _level0.pion7
    _level0.pion6
    _level0.pion5
    _level0.pion4
    _level0.pion3
    _level0.pion2
    _level0.pion1
    Le second ceci :
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    pion1
    pion2
    pion3
    pion4
    pion5
    pion6
    pion7
    pion8
    pion9
    pion10
    pion11
    Et le dernier au survol de l'élément ne renvoi rien. Le code semble bon depuis le début et pourtant ça ne marche pas, c'est un bug de flash ?

+ Répondre à la discussion
Cette discussion est résolue.
Page 1 sur 2 12 DernièreDernière

Discussions similaires

  1. quotes, doubles quotes, échappement etc. au secours !
    Par robiwan dans le forum Langage
    Réponses: 9
    Dernier message: 30/04/2008, 15h09
  2. [MySQL] Sauvegarder du texte (db mysql) CR, single-quote, double-quote, etc
    Par vandeyy dans le forum PHP & Base de données
    Réponses: 7
    Dernier message: 12/03/2007, 11h22

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