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 :

Probleme affectation onRollOver/onRollOut dans boucle for


Sujet :

ActionScript 1 & ActionScript 2

Vue hybride

Message précédent Message précédent   Message suivant Message suivant
  1. #1
    Membre confirmé
    Profil pro
    Développeur Web
    Inscrit en
    Janvier 2007
    Messages
    137
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations professionnelles :
    Activité : Développeur Web

    Informations forums :
    Inscription : Janvier 2007
    Messages : 137
    Par défaut Probleme affectation onRollOver/onRollOut dans boucle for
    Bonjour, j'ai un problème bizarre.
    J'ai un tableau [tab_img] avec des noms d'images dedans.
    Je parcours mon tableau pour prendre chaque image et lui donner une taille et un comportement en cas de rollOver/rollOut.
    Je charge chaque clip ["img" + numéro] dans un clip [conteneur].
    Le clip [choix] est l'endroit où je veux faire afficher l'image quand je passe sur les clips ["img"+num].
    Le problème est que dans la boucle for, [num] semble avoir la bonne valeur puisque les clips ont bien la bonne taille et sont tous redimensionnés, par contre, dans les rollOver et rollOut, [num] est égal à la dernière valeur.
    Voici mon code :
    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
    16
    17
    18
    19
     
    for(var num = 0 ; num < tab_img.length ; num++)
    {
    	// redimensionnement du clip
    	conteneur["clip"+num]._height = hauteur_max;
    	conteneur["clip"+num]._width = hauteur_max;
     
    	// on met en place les évènements de survol
    	conteneur["clip"+num].onRollOver = function()
    	{
    		loadMovie("img_nouveautes/"+tab_img[num],choix);
    		var AlphaTween:Tween = new Tween(choix, "_alpha", None.easeOut, 0, 100, 10, false);
    	}
    	conteneur["clip"+num].onRollOut = function()
    	{
    		loadMovie("img_nouveautes/"+tab_img[current],choix);
    		var AlphaTween:Tween = new Tween(choix, "_alpha", None.easeOut, 100, 0, 10, false);
    	}
    }
    Par exemple, si j'ai 8 images, num va être égal à 7 quel que soit le clip ["img"+num] sur lequel je passe ma souris.
    J'ai vaguement l'impression que le roll est pris sur le conteneur et pas les sous clips.
    Du coup, ma question est : comment faire pour affecter mes évènements aux sous clips et avoir l'équivalent de, par exemple pour conteneur.img3.onRollOver, loadMovie("img_nouveautes/"+tab_img[3],choix); ?

    Merci d'avance

  2. #2
    Membre confirmé
    Profil pro
    Développeur Web
    Inscrit en
    Janvier 2007
    Messages
    137
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations professionnelles :
    Activité : Développeur Web

    Informations forums :
    Inscription : Janvier 2007
    Messages : 137
    Par défaut
    Pour ceux que ça peut intéresser, le problème vient du fait que les affectations dans le rollOver/rollOut ne se font que lors de l'évènement lui-même et pas au moment de la lecture de la fonction. Donc, la variable "num" n'est pas égale à la bonne valeur au moment de l'évènement roll.
    Il faut donc faire comme ceci :
    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
    16
    17
    18
    19
    20
     
    function RollOverHandler(num:Number)
    {
        return function()
    	{
    		debug.text = "over clip "+num;
    	};
    }
    function RollOutHandler(num:Number)
    {
        return function()
    	{
    		debug.text = "out clip "+num;
    	};
    }
     
    ...
     
    conteneur["clip"+num].onRollOver = RollOverHandler(num);
    conteneur["clip"+num].onRollOut = RollOutHandler(num);

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

Discussions similaires

  1. Probleme passage de paramètres à EventListener dans boucle for
    Par bigboss87 dans le forum ActionScript 3
    Réponses: 1
    Dernier message: 14/08/2009, 11h23
  2. affecter variable dans boucle FOR batch
    Par efferalgan dans le forum Scripts/Batch
    Réponses: 1
    Dernier message: 25/10/2007, 14h25
  3. Réponses: 3
    Dernier message: 04/08/2006, 19h24
  4. problème dans boucle for de lecture de fichier ini
    Par chourmo dans le forum Delphi
    Réponses: 3
    Dernier message: 06/07/2006, 09h31
  5. [JLabel] JLabel dans boucle for
    Par clairenes dans le forum AWT/Swing
    Réponses: 2
    Dernier message: 06/01/2006, 00h47

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