Précédent   Forum des professionnels en informatique > Webmasters - Développement Web > Flash/Flex > Flash
Flash Forum d'entraide sur la technologie Flash (Cours, FAQs, Sources)
Partagez cette discussion sur d'autres réseaux sociaux : Viadeo Twitter Google Facebook Digg Delicious MySpace Yahoo
Réponse Proposer ce sujet en actualité
 
Outils de la discussion
Publicité
'
Vieux 02/10/2011, 08h43   #1
Invité de passage
 
Homme
Étudiant
Inscription : octobre 2011
Messages : 1
Détails du profil
Informations personnelles :
Sexe : Homme
Localisation : France

Informations professionnelles :
Activité : Étudiant
Secteur : Communication - Médias

Informations forums :
Inscription : octobre 2011
Messages : 1
Points : 0
Points : 0
Par défaut Déplacer un symbole qui s'aimante sur un autre symbole ?

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 :

Code :
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();
}
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...

EDIT : En fait j'ai également essayé ceci :
Code :
1
2
3
4
5
 
       if (RondNoir.x + 10 > RondRouge.x > RondNoir - 10)
        {
         RondRouge.x = RondNoir.x;
         }
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".

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" :

Code :
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;
      }
 
}
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...
air2zeu est déconnecté   Envoyer un message privé Réponse avec citation 00
Réponse Proposer ce sujet en actualité
Outils de la discussion



Fuseau horaire GMT +2. Il est actuellement 03h54.


 
 
 
 
Partenaires

Hébergement Web