salut a tous
C'est la premiere fois que je participe a un forum alors si qqch cloche n'esitez pas a me le faire remarquer..
j'ai un probleme avec actionscript2.
j'ai un tableau deux dimention qui stoque des movieclip. Quand je veux les suprimer j'utilise une fonction decharge avec les coordonnees x et y de la case du tableau qui fait un removeMovieClip.
Le probleme est le suivant : une fois le terrain affiché,
trace (tabTerrain[b][a].getDepth());
ainsi que tabTerrain[b][a].removeMovieClip();
ne fonctionnent que pour ma derniere ligne de sorte que seul les cases du bas de mon terrain sont effacable..
Ca fait un momment que ca me gonfle alors qi vous avez une idee je suis preneur..
le code :
CLASSE Terrain2
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
86
87
88
89
90
91
92
93
94
95
96
97
98
99
100
101
102
103
104
105
106
107
108
109
110
111
112
113
114
115
116
117 class Terrain2 { //*************************** proprietes ************************************** private var matrice:Array = new Array(); private var tabTerrain:Array = new Array(); private var espac:Number = 6; //espacement entre les cases private var dispo:Number = 50; //disposition par rapport a l'origine private var x:Number=0; //definition de x pour la boucle for private var y:Number=0; //definition de y pour la boucle for private var i:Number=0; //definition de i pour la boucle for private var j:Number=0; //definition de j pour la boucle for private var ligne:Array= new Array(); //tableau qui sert a faire un tabTerrain a 2 dimentions private var denomination:String = ""; //denomination des cases private var numero:Number = 10; //numero de decalage des cases //**************************** constructeur ************************************ public function Terrain2(tab:Array){ matrice = tab; trace("appel du constructeur"); createTabloVide(); } //**************************** methodes **************************************** private function createTabloVide():Void{ trace ("fonction createTabloVide"); //ligne=[]; for (i=0;i<getHauteur();i++){ for(j=0;j<getLongeur(i);j++){ //ligne.push(""); ligne.push(0); } tabTerrain.push(ligne); } } public function getLongeur(x:Number):Number{ return matrice[x].length; } public function getHauteur():Number{ return matrice.length; } public function traceTerrain():Void{ for (y=0; y < getHauteur(); y++){ //trace("les y: " + y); for (x=0; x < getLongeur(y); x++){ //trace("les x: " + x); //trace("valeurs : " + matrice[y][x]); denomination = x + "," + y; numero++; if (matrice[y][x] == 1){ tabTerrain[y][x] = _root.attachMovie("eau", "eau" + denomination, numero); tabTerrain[y][x]._x = dispo + espac * x; tabTerrain[y][x]._y = dispo + espac * y; trace("un carré bleu : " + denomination + " décalage numéro : " + numero); }else if(matrice[y][x] == 0){ tabTerrain[y][x] = _root.attachMovie("terre", "terre" + denomination, numero); tabTerrain[y][x]._x = dispo + espac * x; tabTerrain[y][x]._y = dispo + espac * y; trace("un carré noir : " + denomination + " décalage numéro : " + numero); } trace(tabTerrain[y][x].getDepth()); } trace(tabTerrain[y][x].getDepth()); } trace(tabTerrain[2][6].getDepth()); trace(tabTerrain[10][5].getDepth()); trace(tabTerrain[1][15].getDepth()); trace(tabTerrain[14][3].getDepth()); } public function decharge(a:Number, b:Number):Void{ trace("decharge"); trace(a); trace(b); trace (tabTerrain[b][a].getDepth()); tabTerrain[b][a].removeMovieClip(); } }
UTILISATION :
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 var matrice1 = [[1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1], [1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1], [1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1], [1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1], [1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1], [1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1], [1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1], [1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1], [1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1], [1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1], [1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1], [1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1], [1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 0, 0, 0, 0, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1], [1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 0, 0, 0, 0, 0, 0, 0, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1], [1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 1, 1, 1, 1, 1, 1, 1, 1], [1, 1, 1, 1, 1, 1, 1, 1, 1, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 1, 1, 1, 1, 1], [0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0], [0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0], [1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1]]; var Ter1:Terrain2 = new Terrain2(matrice1); Ter1.traceTerrain(); Ter1.decharge(1,3); // la fonction decharge trouve bien la profondeur (^m si c'est pas la bonne) Ter1.decharge(1,2); // mais apres puiske les indices sont tous sur la même ligne j'ai plus que des undefined avec getDepth Ter1.decharge(1,4); Ter1.decharge(1,3); Ter1.decharge(12,11);
Merci
Partager