Salut.

Je suis sur un projet en flash, qui simule la 3D (tjs le meme qu'avant). Là, mon problème c'est que lorsque mes pieces se déplacent sur l'écran, j'ai des résidus qui restent affichés, ce qui rend mon anim' dégueulasse.

voici le code que j'utilise et que je détaille après.
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
 
//visualisation
trackball.onEnterFrame = function() {
	_root.zone_montage.clear();
	_root.clear();
	_root.zone_montage.redraw(true);
 
	//application des paramètres aux pièces
	for (j=1; j<_global.tableau.length; j++) {
		var_nom = "elt"+j+"_";
		nom_fg = "filg"+j+"_";
		nom_fd = "fild"+j+"_";
		switch (_global.tableau[j][0]) {
			case "viewer_rotx" :
			const_cyli(_global.tableau[j], var_nom, "0x999999", nom_fg, nom_fd, param);
			break;
		case "viewer_roty" :
			const_cyli(_global.tableau[j], var_nom, "0x999999", nom_fg, nom_fd, param);
			break;
		}
		gotoAndPlay(2); //2 c'est la frame où il y a ce code
	}
};
const_cyli = function (tab, nom, couleur, nom_fg, nom_fd, param) {
	// construction des faces à partir des points
	for (i=0; i<nb_faces-1; i++) {
		with (_root.zone_montage[nom+i]) {
			clear();
			lineStyle(1, couleur);
			beginFill(couleur);
			moveTo(tab[1][i].x, tab[1][i].y);
			lineTo(tab[1][i+1].x, tab[1][i+1].y);
			lineTo(tab[1][nb_faces+i+1].x, tab[1][nb_faces+i+1].y);
			lineTo(tab[1][nb_faces+i].x, tab[1][nb_faces+i].y);
			lineTo(tab[1][i].x, tab[1][i].y);
			endFill();
		}
	}
	// dessin derniere face
	with (_root.zone_montage[nom+(nb_faces-1)]) {
		clear();
		lineStyle(1, couleur);
		beginFill(couleur);
		moveTo(tab[1][nb_faces-1].x, tab[1][nb_faces-1].y);
		lineTo(tab[1][0].x, tab[1][0].y);
		lineTo(tab[1][nb_faces].x, tab[1][nb_faces].y);
		lineTo(tab[1][2*nb_faces-1].x, tab[1][2*nb_faces-1].y);
		lineTo(tab[1][nb_faces-1].x, tab[1][nb_faces-1].y);
		endFill();
	}
	// dessin du dessus et du dessous
	with (_root.zone_montage[nom+(nb_faces)]) {
		clear();
		lineStyle(1, 0x000000);
		beginFill(couleur);
		moveTo(tab[1][0].x, tab[1][0].y);
		for (k=0; k<nb_faces; k++) {
			lineTo(tab[1][k].x, tab[1][k].y);
		}
		lineTo(tab[1][0].x, tab[1][0].y);
		endFill();
	}
	with (_root.zone_montage[nom+(nb_faces+1)]) {
		clear();
		lineStyle(1, 0x000000);
		beginFill(couleur);
		moveTo(tab[1][nb_faces].x, tab[1][nb_faces].y);
		for (k=0; k<nb_faces; k++) {
			lineTo(tab[1][nb_faces+k].x, tab[1][nb_faces+k].y);
		}
		lineTo(tab[1][nb_faces].x, tab[1][nb_faces].y);
		endFill();
	}
	// gestion des profondeurs en fonction de la position en Z
	for (i=0; i<nb_faces+2; i++) {
		_root.zone_montage[nom+i].swapDepths(100000-tab[2][i].z*100);
	}
};
en fait ma pièce tourne en 3D simulée. Je récupère des paramètres d'angles que j'applique, je redessine les faces et je reviens en haut de la page (gotoAndPlay(2)) ou j'efface tout avec :
_root.zone_montage.clear();
_root.clear();
_root.zone_montage.redraw(true);
zone_montage est le carré où je dessine mes pièces. trackbal est un clip qui simule une trackball. Et c'est quand je suis dessus qu'il lance la boucle de dessin.
mais il me reste des bouts de face ou de traits sur l'écran. comment l'éviter?
merci de votre aide