Bonjour,

Je suis novice en Flash et je me heurte actuellement à un problème dans un de mes exercises :

Je réalise une sorte de jeu qu'on pourrait qualifier de memory, mais simplifié à l'extrême.
Le joueur doit trouver 3 movieclip dans une grille de 9 cases, cette grille est créee grâce à deux tableaux séparant les "bons" movieclips et les "mauvais". Afin de visualiser les movieclips sélectionnés, leur transparence est augmenté lorsqu'on clique dessus.
Si le joueur se trompe, le jeu doit effectuer une sorte de "reset" et remettre les clip dans leur opacité initiale. Je voudrais que le jeu se "reset" à chaque fois que le joueur se trompe. Pour cela j'ai utilisé une boucle "for", mais celle-ci ne fonctionne correctement qu'une seule fois . voici le code afin que vous puissiez mieux visualiser le problème :

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
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
84
85
 
import flash.display.DisplayObjectContainer;
 
/*
* VARIABLES
*/
var id:int = 0; // Pour tenir le compte du nombre de boutons à cliquer (cases justes)
var id2:int = 0; // Pour tenir le compte du nombre de boutons à cliquer (mauvaises cases)
 
var case_1:mc_case_1 = new mc_case_1();
var case_2:mc_case_2 = new mc_case_2();
var case_3:mc_case_3 = new mc_case_3(); 
var case_4:mc_case_4 = new mc_case_4(); 
var case_5:mc_case_5 = new mc_case_5();
var case_6:mc_case_6 = new mc_case_6(); 
var case_7:mc_case_7 = new mc_case_7(); 
var case_8:mc_case_8 = new mc_case_8(); 
var case_9:mc_case_9 = new mc_case_9();
 
var les_bonnes_cases:Array=[case_1, case_2, case_3]; // La liste des mc_case "justes"
var les_mauvaises_cases:Array=[case_4, case_5, case_6, case_7, case_8, case_9]; // La liste des mc_case mauvais
var un_mc_case:DisplayObjectContainer; // énumération des mc_case 
 
/*
* CODE PRINCIPAL
*/
//le code commun à tous les mc_case "justes"
for each (un_mc_case in les_bonnes_cases)
{
  un_mc_case.x = stage.stageWidth / 2;
  un_mc_case.y = stage.stageHeight / 3;
  //un_mc_case.alpha = 1;
  un_mc_case.addEventListener (MouseEvent.MOUSE_DOWN, clic_case);
  addChild (un_mc_case);
  id++;
}
 
//code commun à tous les mc_case "mauvais"
for each (un_mc_case in les_mauvaises_cases)
{
  un_mc_case.x = stage.stageWidth / 2;
  un_mc_case.y = stage.stageHeight / 3;
  //un_mc_case.alpha = 1;
  un_mc_case.addEventListener (MouseEvent.MOUSE_DOWN, clic_case_2);
  addChild (un_mc_case);
  id2++;
}
 
 
// cas particuliers des mc_case
case_1.x -= case_1.width;
case_2.x == case_1.width;
case_3.x += case_2.width;
case_4.x -= case_5.width;
case_4.y += case_1.height;
case_5.y += case_5.height;
case_6.x += case_5.width;
case_6.y += case_3.height;
case_7.x -= case_1.width;
case_7.y += case_9.height*2;
case_8.x == case_1.width;
case_8.y += case_9.height*2;
case_9.x += case_9.width;
case_9.y += case_9.height*2;
 
/*
* FONCTIONS
*/
function clic_case(event:Event):void
{
  event.currentTarget.alpha = 0.5;
  event.currentTarget.removeEventListener (MouseEvent.MOUSE_DOWN, clic_case);
  if (id-- == 1) for each (un_mc_case in les_bonnes_cases) removeChild(un_mc_case); 
}
 
function clic_case_2(event:Event):void
{
  event.currentTarget.alpha = 0.5;
  event.currentTarget.removeEventListener (MouseEvent.MOUSE_DOWN, clic_case_2);
  if (id2-- == 4) for each (un_mc_case in les_mauvaises_cases) { //LA BOUCLE NE MARCHE PAS
	un_mc_case.alpha=1;
	un_mc_case.addEventListener (MouseEvent.MOUSE_DOWN, clic_case_2);
	id2=0;
 }
}
Pourriez-vous me dire où je me trompe et comment remédier à ce problème ? D'avance, merci.