Bonjour à tous,
Voici le petit soucis que j'ai un peu de mal à résoudre sous flash.
En gros, j'ai deux symboles, un rond rouge, et un rond noir.
A l'aide d'un startDrag et d'un stopDrag je permet de déplacer mon rond rouge, jusqu'ici aucun problème
Maintenant je voudrais qu' en déplaçant le rond rouge plus ou moins près du rond noir, celui-ci prenne exactement la même position, un peu comme quand on utilise des repères avec la règle dans Flash ou Photoshop. Disons que si mon symbole RondRouge est à 10pixels près de RondNoir, il doit prendre la valeur de RondNoir.
Voici ce que j'ai fait :
Cependant cela ne marche absolument pas... Je peux déplacer mon Rond Rouge, mais il n'est pas "aimanté" sur le rond noir quand je passe à proximité de celui-ci...
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 this.stop(); RondRouge.addEventListener(MouseEvent.MOUSE_DOWN, bouger); RondRouge.addEventListener(MouseEvent.MOUSE_UP, arreter); function bouger(infos){ RondRouge.startDrag(); if ((RondRouge.x == RondNoir.x +10) || (RondRouge.x == RondNoir.x - 10)) { RondRouge.x = RondNoir.x; } } function arreter (infos){ RondRouge.stopDrag(); }
EDIT : En fait j'ai également essayé ceci :
Car je me suis rendu compte que dans l'autre cas il fallait que ce soir pile poil à 10 pixels près, or moi je souhaite indiquer une "fourchette".
Code : Sélectionner tout - Visualiser dans une fenêtre à part
1
2
3
4
5 if (RondNoir.x + 10 > RondRouge.x > RondNoir - 10) { RondRouge.x = RondNoir.x; }
EDIT2 : Je vous présente mes excuses je suis peut-être allé un peu vite poster mon problème... En fouillant sur le forum plus en détail, je me suis rendu compte que pas mal de personnes avaient ce soucis. J'ai enfin trouver une solution, c'est vrai que ma première idée était loin d'être la bonne, je poste quand même pour les gens à qui cela pourrait être utile, notamment pour des "puzzle" :
Ce qui est dommage c'est que du coup on doit le mettre dans la fonction où l'on relache le symbole, ca ne peut pas être aimanté lorsqu'on le bouge avec la souris...
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
21
22
23
24
25 this.stop(); RondRouge.addEventListener (MouseEvent.MOUSE_DOWN, bouger); RondRouge.addEventListener (MouseEvent.MOUSE_UP, arreter); function bouger(infos) { RondRouge.startDrag(); } function arreter(infos); { RondRouge.stopDrag(); if (RondRouge.x >= (RondNoir.x -50)) { RondRouge.x = RondNoir.x; } if (RondRouge.y >= (RondNoir.y -50)) { RondRouge.y = RondNoir.y; } }
Partager