Changer de curseur sur une zone definie

maitreyoda84 Messages postés 19 Date d'inscription mercredi 29 décembre 2004 Statut Membre Dernière intervention 1 octobre 2006 - 23 avril 2006 à 21:00
cs_Bonaparte Messages postés 68 Date d'inscription vendredi 7 janvier 2005 Statut Membre Dernière intervention 20 février 2009 - 26 avril 2006 à 15:40
Salut, je débute en flash et j'ai essayé de faire mon premier code mais visiblement j'ai encore beaucoup à apprendre ...


Je cherche a réaliser un swf où le curseur de la souris change en survolant une certaine zone. Dans cette zone il faut bien sur que le nouveau curseur puisse clicker sur des boutons présent dans cette zone...

Quand la souris quitte cette zone, elle redevient normal et l'objet ayant servi de nouveau curseur vient se replacer au centre de la zone.

N'étant que débutant, voila ce que j'ai fait. J'ai défini la zone en question par un BOUTON (un rectangle) sur lequel j'ai appliqué ce code :



on (rollOver) // lorsque l'on survole la zone
{
Mouse.hide(); // on commence par cacher le curseur de la souris
startDrag ("cercle",1);// puis on drag l'objet "cercle" pour l'utiliser en tant que nouveau curseur
}

on (rollOut) // lorsque l'on sort de la zone
{
stopDrag (); // on stop le drag de l'objet "cercle"
Mouse.show(); // on réaffiche le curseur de la souris
cercle._x=260;
cercle._y=274; // on replace l'objet "cercle" au centre de la zone
}

Tout ceci fonctionnait du tonnere jusqu'a ce que je place des boutons dans la zone, en effet quand le curseur (l'objet "cercle") survole le bouton dans la zone en question, il considere ca comme un rollOut et il agit comme si j'était sorti de la zone (réaparition de l'ancien curseur et le cercle qui retourne au centre de la zone).

J'aimerai donc pouvoir survoler ce bouton avec le nouveau curseur (le cercle)..


pour voir un exemple : http://flacdata1.free.fr/FLASH/drag.swf

Cette erreur me parait hélas logique quand je relis mon code, mais étant encore débutant je ne voie pas comment réaliser la fonction que je désire sans utiliser les rollOver et le rollOut.


Merci de m'aider à voir où j'ai effectué une erreur, ou bien ce que j'aurais du faire pour que cela marche ... Merci d'avance pour vos réponses !

10 réponses

Faatalis Messages postés 74 Date d'inscription jeudi 23 novembre 2000 Statut Membre Dernière intervention 30 juillet 2010
23 avril 2006 à 22:12
Au lieu d'utiliser un bouton,
tu devrais définir ta zone avec des coordonnées,
et les comparer à la position de la souris.
0
maitreyoda84 Messages postés 19 Date d'inscription mercredi 29 décembre 2004 Statut Membre Dernière intervention 1 octobre 2006
23 avril 2006 à 23:08
Euh ... on fait ca comment ?

En fait si j'ai utilisé un bouton, c'est parce que la zone finale ne sera pas un simple rectangle helas ...
0
Faatalis Messages postés 74 Date d'inscription jeudi 23 novembre 2000 Statut Membre Dernière intervention 30 juillet 2010
24 avril 2006 à 09:16
une fois que t'as choisi l'emplacement de ta zone,
tu regardes ses coordonnées (ex : 88<x<230 et 44<y<150)
puis tu compares la position de la souris pour savoir si elle se trouve dans cette zone,

if(_xmouse>88...){
...

après si c'est pas un rectangle,
tout de suite, j'ai pas d'idée.
0
maitreyoda84 Messages postés 19 Date d'inscription mercredi 29 décembre 2004 Statut Membre Dernière intervention 1 octobre 2006
24 avril 2006 à 10:04
Et les autres ? personnes n'a d'idées ? ca ne doit pas etre bien compliqué ?
0

Vous n’avez pas trouvé la réponse que vous recherchez ?

Posez votre question
belahmew Messages postés 20 Date d'inscription mardi 21 mars 2006 Statut Membre Dernière intervention 7 juillet 2006
24 avril 2006 à 15:36
Pour éviter que flash ne considère le bouton comme étant une zone externe à ta zone en question, je pense qu'il faut que ton bouton fasse partie de la zone en question:
supprime le et tu le recrées en double cliquant sur ta zone puis tu le mets dessus....c'est qu'une idée mais c'est pas sûr que ça marche.
0
maitreyoda84 Messages postés 19 Date d'inscription mercredi 29 décembre 2004 Statut Membre Dernière intervention 1 octobre 2006
24 avril 2006 à 16:15
Non hélas ca ne marche toujours pas :'(

Moi qui pensait avoir mis le doigt sur un probleme tout bete ...

Je suis certain qu'ici qqun connait la solution ;-)
0
belahmew Messages postés 20 Date d'inscription mardi 21 mars 2006 Statut Membre Dernière intervention 7 juillet 2006
24 avril 2006 à 16:33
Tu n'as qu'à travailler avec les coordonnées alors:

tu fais tes calculs pour savoir là où est définie ta zone de survol, puis tu paramètres les _xmouse et _ymouse !
0
maitreyoda84 Messages postés 19 Date d'inscription mercredi 29 décembre 2004 Statut Membre Dernière intervention 1 octobre 2006
24 avril 2006 à 17:22
Oui c'est ce à quoi j'avais pensé au départ mais je ne vois pas comment définir une zone non rectantgualaire avec les coordonnées ...
0
maitreyoda84 Messages postés 19 Date d'inscription mercredi 29 décembre 2004 Statut Membre Dernière intervention 1 octobre 2006
24 avril 2006 à 17:56
C'est bon j'ai trouvé !!!

il suffit d'ajouter l'action :

on (rollOver) // lorsque l'on survole la zone
{
Mouse.hide(); // on commence par cacher le curseur de la souris
startDrag ("cercle",1);// puis on drag l'objet "cercle" pour l'utiliser en tant que nouveau curseur
}


sur chaque bouton présent dans la zone !


Ce n'est pas une solution de serial developpeurs mais ca fera l'affaire pour le moment,

si certain d'entre vous voie neanmoins une autre facon de proceder ...
0
cs_Bonaparte Messages postés 68 Date d'inscription vendredi 7 janvier 2005 Statut Membre Dernière intervention 20 février 2009
26 avril 2006 à 15:40
c logique...!!
0
Rejoignez-nous