Survol d'un clip (onMouseMove)

niconaldo Messages postés 17 Date d'inscription lundi 17 novembre 2003 Statut Membre Dernière intervention 9 août 2004 - 26 mai 2004 à 09:59
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:27
Bonjour,

j'ai sur ma scène une carte avec différents points (qui sont eux-mêmes des clips), et je souhaite qu'au survol de la souris sur un point un libellé s'affiche.

J'ai fait ceci pour tester :

_root.Map.attachMovie("lib","libRef",2);
_root.Map.libRef.txtLib="test"; //définition du texte du libellé
_root.Map.libRef._x=100;
_root.Map.libRef._y=100;
_root.Map.libRef._visible=false;
_root.Map.libRef.onMouseMove = function(){
_root.Map.libRef._visible=true;
}

Le problème est que l'état "visible" passe à "true" dès que je bouge la souris sur la scène, ce que je ne comprends pas. Je croyais que onMouseMove pouvait identifier le survol d'un clip précis. Y a-t-il une solution ?

Merci de votre aide.

3 réponses

Prouprou_Sensei Messages postés 517 Date d'inscription mardi 23 décembre 2003 Statut Membre Dernière intervention 24 octobre 2006 1
26 mai 2004 à 19:17
Utilise onRollOver et onRollOut.
On mouseMouve c un gestionnair d'evenement qui s'execute dés que la souris bouge ou que ce soit.
A tchao !
0
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:09
Merci beaucoup, c'est exatement ce que je cherchais !!!

Par contre j'ai maintenant un problème à l'intérieur de la fonction appelée lors du survol. 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...
0
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:27
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