Chute de neige : chute de flocon dans EnterFrame, si hitTest, attacher un clip animé et faire disparaitre le flocon (removeMovieClip) généré au départ.

Je n,arrive pas à jouer l'animation attachée ET enlever le clip du premier flocon. J'ai mis un setInterval qui ne marche pas non plus... HELP!

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
// Créer le flocon:
function createFlake() {
	this.createEmptyMovieClip("flake_"+flakeCount,this.getNextHighestDepth());
	var flake = this["flake_"+flakeCount];
	flake._y = Math.random()*-300;// position y de départ
	// Créer position x de départ aléatoire entre 100 et 700px:
	for (var e:Number = 0; e<400; e++) {
		var etendueX:Number = randRange(100, 700);
		var transpa:Number = randRange(55, 95);
	}
	flake._x = etendueX;
	//flake._alpha = transpa;
	flake.attachMovie("flocon","flake_mc",1);
	flake.rate = (Math.random()*maxRate)+minRate;// vitesse
	if (flakeCount%2 == 0) {
		flake.bitmapRef = girlBitmap;
	} else {
		flake.bitmapRef = gloveBitmap;
	}
	if (flakeCount%5 == 0) {
		flake.windVal = wind+flake.rate*.025;
	} else {
		flake.windVal = (wind+flake.rate*.025)*-1;
	}
	var blurFilter = new flash.filters.BlurFilter(1, flake.rate, 2);//2
	flake.filters = [blurFilter];
	// Taille aléatoire des flocons:
	for (var i = 0; i<100; i++) {
		var taille:Number = randRange(60, 100);
	}
	flake._xscale = taille;
	flake._yscale = taille;
	flake.cacheAsBitmap = true;
	//ENTERFRAME
	// Vérifier si perso mange le flocon = compte monte + flocon disparait:
	flake.onEnterFrame = function() {
		// Rotation des flocons :
		//flake._rotation += Math.round(flake.rate/20);
		if (this.hitTest(perso.tete.zone)) {
			// Ajouter un point:
			this._parent.texte.lespouints.text = _global.compte += 1;
			trace("n1 : "+_global.compte);
			// Son avale-flocon:
			var sonAvale:Sound = new Sound();
			sonAvale.attachSound("erreur.wav");
			sonAvale.setVolume(100);
			//
 
			this.attachMovie("floconTransfo","instance1",this.getNextHighestDepth());
			delete this.onEnterFrame;
			//removeMovieClip(this);
			//Créer interval de 0.5sec avant de rermover mc:
			setInterval(enlever,500);
			function enlever() {
				flake.removeMovieClip();
			}
 
			//
		}
		// Si position Y = sceneH = n'a pas attrapé le flocon : neige monte de x px si en bas et que compte est plus petit:                
		if (this._y>=sceneH+25) {
			this._parent.neigeMonte._y -= 10;
		}
		// Si neige _y atteint < visage perso, allez aux résultats:                
		if (this._parent.neigeMonte._y<600) {//&& _global.compte<10) {
			this._parent.loadMovie("fin.swf","_level0");
		}
		// Si compte atteint 10, aller prochain niveau: // && if(_global.compte<10) {                
		if (this._parent.neigeMonte._y>=600) {
			if (_global.compte>=10) {
				this._parent.loadMovie("n2.swf","_level0");
				trace("n1 : "+_global.compte);
			}
		}
		if (this.bitmapRef.getPixel(this._x, this._y+this._height/2) != 0 || this.bitmapRef.getPixel(this._x, this._y+this._height/2) == 16777215 || this._y>sceneH+25) {
			createFlake();
			this.filters = null;
			if (this._y>=sceneH) {
				removeMovieClip(this);
			}
			delete this.onEnterFrame;
		} else {
			this._x = this._x+this.windVal;
			this._y += this.rate;
		}
	};
	flakeCount++;
}
// FOR - créer les flocons:
for (var i:Number = 0; i<2; i++) {// 3 //quantité flocons
	createFlake();
}