SetMask et duplicateMovie pour effet boule de neige
Tigerlely
Messages postés14Date d'inscriptionmardi 29 mai 2007StatutMembreDernière intervention26 février 2010
-
4 déc. 2008 à 10:39
Tigerlely
Messages postés14Date d'inscriptionmardi 29 mai 2007StatutMembreDernière intervention26 février 2010
-
4 déc. 2008 à 10:56
Bonjour à tous,
J'ai un petit problème que je n'arrive pas à résoudre, pourtant suis sûr d'être po loin d'y arriver, mais rien à faire, mon cerveau ne trouve pas.
J'ai récupérer le code de Lamor sur ce site pour générer une tomber de neige.
Or en fait mon projet est de créer une "boule de neige", c'est objet que l'on remue et où l'on regarde tomber la neige.
Or je n'arrive pas à appliquer un masque pour que la neige apparaisse uniquement dans la boule.
J'ai créé un clip dont l'occurence est mask_mc et tenté d'appliquer le code nom_clip_a_masquer.setMask(mask_mc) un peu partout mais rien à faire. Il fonctionne que lorque je l'applique directement sur le scène avec le code this.setMask(mask_mc).
Help, je vous en prie, je ne sais pu quoi faire, j'ai tout tenté.
Voici le code :
// profondeur des clips :
prof = 1;
// fréquence des flocons :
_root.nbr = 100;
// création d'un flocon générique :
_root.createEmptyMovieClip("baseParticule", prof);
with (_root.baseParticule) {
_x = 0;
_y = 0;
_alpha = 0;
lineStyle(40, 0xffffff, 127);
moveTo(0, 0);
lineTo(2, 0);
}
// comportement du flocon :
particule = function () {
prof++;
_root.baseParticule.duplicateMovieClip("p"+prof, prof);
_root["p"+prof]._y = 0;
_root["p"+prof]._x = random(380);//largeur de la scène
_root["p"+prof].sens = Math.random(4)*4;
oh = _root["p"+prof].sens*2+1;
_root["p"+prof]._width = oh;
_root["p"+prof]._height = oh;
_root["p"+prof]._alpha = oh*12;
_root["p"+prof].onEnterFrame = function() {
if (this._y<380) {//si la position 'y' est inférieure à la position du sol, on continue la descente
this._y += this.sens;
}
else {//si la position 'y' est égale à la position du sol, on stoppe la descente
this._alpha--;
if (this._alpha<=0) {
this.removeMovieClip();
delete this.onEnterFrame;
}
}
};
updateAfterEvent();
};
// mitraillage de flocons :
baseInterv = setInterval(particule, _root.nbr);
stop();
Merci d'avance pour vos réponses