Précédent   Forum des professionnels en informatique > Webmasters - Développement Web > Flash/Flex > Flash > AS3
AS3 Questions relatives à la programmation ActionScript 3 (Cours AS3)
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 04/12/2011, 18h53   #1
Invité de passage
 
Inscription : mai 2008
Messages : 17
Détails du profil
Informations forums :
Inscription : mai 2008
Messages : 17
Points : 2
Points : 2
Par défaut Problème de premier-plan

Bonjour,

J'ai un petit bug sur ce script que je ne comprend pas. Celui-ci bug si la case que j'essaye de déplacer se trouve sous une case existante.
Pour l'exemple, si je déplace la case rouge sur mon centre 1, et la bleu ensuite, ça fonctionne. Par contre si je déplace la case bleu sur mon centre 1 et l'orange ensuite ça bug car l'orange se trouve en dessous.

Avez-vous une idée pour régler celà?

Voici mon code, un fla cs5 et un swf.

Merci bonne fin de journée !!

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
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
 
//Position d'origine des carré
var startX:Number = 696.1;
var startY:Number = 147;
 
//Vérification si les centres sont libres ou pas
centre1.libre = true;
centre2.libre = true;
 
//Carrés
p1.addEventListener(MouseEvent.MOUSE_DOWN,appuie);
p2.addEventListener(MouseEvent.MOUSE_DOWN,appuie);
p3.addEventListener(MouseEvent.MOUSE_DOWN,appuie);
p4.addEventListener(MouseEvent.MOUSE_DOWN,appuie);
 
 
var verificationC1:Boolean = false;
var verificationC2:Boolean = false;
 
//Mouse Down
function appuie(evt:MouseEvent) {
p1.addEventListener(MouseEvent.MOUSE_UP,relache);
p2.addEventListener(MouseEvent.MOUSE_UP,relache);
p3.addEventListener(MouseEvent.MOUSE_UP,relache);
p4.addEventListener(MouseEvent.MOUSE_UP,relache);
evt.currentTarget.startDrag();
 if(evt.currentTarget.centre != null){
     evt.currentTarget.centre.libre = true;
     evt.currentTarget.centre = null;
 
	 //Si le centre est null, la vérification est fause
	 verificationC1 = false;
	 verificationC2 = false;
 }
}
 
//Mouse Up
function relache(evt:MouseEvent) {
evt.currentTarget.stopDrag();
removeEventListener(MouseEvent.MOUSE_UP,relache);
//Collision Centre1
if (evt.currentTarget.hitTestObject(centre1) ) {
   if(centre1.libre){
     centre1.libre = false;
     evt.currentTarget.x = 266;
     evt.currentTarget.y = 153,25;
	 evt.currentTarget.centre = centre1;
	 verificationC1 = true;
 
   }else{
      evt.currentTarget.x = startX;
      evt.currentTarget.y = startY;
   }
}
 
//Collision Centre2
if (evt.currentTarget.hitTestObject(centre2)) {
	 if(centre2.libre){
      centre2.libre = false;
	  evt.currentTarget.x = 376,15;
	  evt.currentTarget.y = 153,35;
	  evt.currentTarget.centre = centre2;
	  verificationC2 = true;
 
  }else{
      evt.currentTarget.x = startX;
      evt.currentTarget.y = startY;
   }
}
}
 
//vérification finale
bt_verif.buttonMode=true;
bt_verif.addEventListener(MouseEvent.CLICK, resultat);
function resultat(e:MouseEvent) {
	if (verificationC1==true && verificationC2==true)
	{
		trace("C'est juste");
	} else
	{
		trace("C'est faux");
	}
}
Boogzz est déconnecté   Envoyer un message privé Réponse avec citation 00
Vieux 05/12/2011, 02h51   #2
Invité de passage
 
Inscription : mai 2008
Messages : 17
Détails du profil
Informations forums :
Inscription : mai 2008
Messages : 17
Points : 2
Points : 2
Re,

Problème réglé en positionnant le clip courant en premier plan sur l’événement onMouseDown.

Merci,
Bonne nuit
Boogzz est déconnecté   Envoyer un message privé Réponse avec citation 00
Réponse Proposer ce sujet en actualité Cette discussion est résolue.
Outils de la discussion



Fuseau horaire GMT +2. Il est actuellement 18h16.


 
 
 
 
Partenaires

Hébergement Web