Problème dans une fonction onRollOver

niconaldo Messages postés 17 Date d'inscription lundi 17 novembre 2003 Statut Membre Dernière intervention 9 août 2004 - 27 mai 2004 à 10:16
niconaldo Messages postés 17 Date d'inscription lundi 17 novembre 2003 Statut Membre Dernière intervention 9 août 2004 - 28 mai 2004 à 11:26
Bonjour, j'ai un problème à l'intérieur de la fonction appelée lors du survol d'un clip représentant un point. Lors de ce survol, un libellé doit s'afficher à côté du point, son état _visible passant à true.
Voici un extrait du code :

for (i= 1;i<=nbPoints;i++)
{
//affichage du picto
nom="picto"+i;
x=Math.round(_root["x"+i])+10;
y=Math.round(_root["y"+i])+10;
_root.Map.pictoRef.duplicateMovieClip(nom,i*2+1);
_root.Map["picto"+i]._x=x;
_root.Map["picto"+i]._y=y;
//préparation du libellé
nom="libelle"+i;
libelle=eval("lib"+i);
x+=10;
_root.Map.libRef.duplicateMovieClip(nom,i*2+2);
_root.Map["libelle"+i].txtLib=libelle;
_root.Map["libelle"+i]._x=x;
_root.Map["libelle"+i]._y=y;
_root.Map["libelle"+i]._visible=false;

//lors du survol de la souris sur le picto, on affiche
//le libellé
_root.Map["picto"+i].onRollOver = function(){
test="rollover";
_root.Map["libelle"+i]._visible=true;
}
_root.Map["picto"+i].onRollOut = function(){
test= "rollout";
_root.Map["libelle"+i]._visible=false;
}
}

La seule chose qui ne marche pas est le changement d'état visible/invisible de _root.Map["picto"+i].

Le survol fonctionne (le test marche), mais pas moyen d'agir sur mon clip "libelle"+i à l'intérieur de la fonction.
Je suppose qu'il doit s'agir d'une question de niveau, que je dois remplacer _root.Map["picto"+i] par autre chose, mais quoi ???

P.S. : si j'écris la fameuse ligne "en dur" à l'intérieur de la fonction, ca marche :

_root.Map["picto"+i].onRollOver = function(){
test="rollover";
_root.Map.libelle1._visible=true;
}
_root.Map["picto"+i].onRollOut = function(){
test="rollout";
_root.Map.libelle1._visible=false;
}

Merci de m'éclairer...

1 réponse

niconaldo Messages postés 17 Date d'inscription lundi 17 novembre 2003 Statut Membre Dernière intervention 9 août 2004
28 mai 2004 à 11:26
Pour ceux que ca intéresse, voici la solution :

for (i=1;i<=nbPoints;i++)
{
//affichage du picto
nom="picto"+i;
x=Math.round(_root["x"+i])+10;
y=Math.round(_root["y"+i])+10;
_root.Map.pictoRef.duplicateMovieClip(nom,i*2+1);
_root.Map["picto"+i]._x=x;
_root.Map["picto"+i]._y=y;
//préparation du libellé
nom="libelle"+i;
libelle=eval("lib"+i);
x+=10;
var cible:MovieClip = _root.Map.libRef.duplicateMovieClip(nom,i*2+2);
cible.txtLib=libelle;
cible._x=x;
cible._y=y;
cible._visible=false;

//lors du survol de la souris sur le picto, on affiche le libellé
_root.Map["picto"+i].toLoad = cible;
_root.Map["picto"+i].onRollOver = function(){
test="rollover";
this.toLoad._visible=true;
}
_root.Map["picto"+i].onRollOut = function(){
test="rollout";
this.toLoad._visible=false;
}
}
0
Rejoignez-nous