niconaldo
Messages postés17Date d'inscriptionlundi 17 novembre 2003StatutMembreDernière intervention 9 août 2004
-
26 mai 2004 à 09:59
niconaldo
Messages postés17Date d'inscriptionlundi 17 novembre 2003StatutMembreDerniè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 ?
niconaldo
Messages postés17Date d'inscriptionlundi 17 novembre 2003StatutMembreDerniè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 :
niconaldo
Messages postés17Date d'inscriptionlundi 17 novembre 2003StatutMembreDerniè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;
}
}