Ce code créer tout d'abord un cercle en action script (merci cerdrcici).
Ce cercle est ensuite répliqué 200 fois chaque clip ayant une position, un alpha , un yscale et xscale aléatoire.
Leur déplacement vertical est regulier tandis que leur déplacement horizontal suit les mouvement d'une fonction cosinus (ce qui donne un effet de va et vien)
Tout le script est positioné sur l'image 1 du calque action il n'y a que du code, rien dans la blibliothéque et seulement une image
Source / Exemple :
// On crée ici l'objet MovieClip.prototype.asrond comprenant 4 variables : position horizontale, position verticale, rayon du cercle et facteur de qualitée.
//Merci cedricici pour le code ! (http://www.flashkod.com/)
MovieClip.prototype.asrond = function(X, Y, R, Q) {
Q *= 4;
alpha = (2*Math.PI/Q);
with (this) {
lineStyle(1, 0xFFFFFF, 100);
beginFill(0xFFFFFF);
moveTo(X, Y+R);
for (i=0; i<Q; i++) {
Bx = (Math.sin(i*alpha)*R)+(Math.cos(i*alpha)*(Math.tan(alpha/2)*R));
By = (Math.cos(i*alpha)*R)-(Math.sin(i*alpha)*(Math.tan(alpha/2)*R));
Cx = Math.sin((i+1)*alpha)*R;
Cy = Math.cos((i+1)*alpha)*R;
curveTo(X+Bx, Y+By, X+Cx, Y+Cy);
}
endFill();
}
};
// ici on crée un Clip vide de nom boule sur le level 0
_root.createEmptyMovieClip("boule", _root);
// on applique le prototype asround a boule
boule.asrond(-10, -10, 7, 2);
// i = 1 ...
i = 1;
// si i est inferieur a 200
while (i<200) {
// on copie le clip boule et on lui attribue le nom boule+i (si i = 2, boule2)
boule.duplicateMovieClip("boule"+i, i);
// la position horizontale de ce nouveau clip sera egale a un nombre au hasard compris entre 0 et 1 multiplié par 500
_root["boule"+i]._x = Math.random()*(550);
// la position verticale de ce nouveau clip sera egale a un nombre au hasard compris entre 0 et 1 multiplié par 400
_root["boule"+i]._y = Math.random()*(400);
// le niveau d'alpha de ce nouveau clip sera egale a un nombre au hasard entre 0 et 99
_root["boule"+i]._alpha = random(100);
// la taille horizontale de ce nouveau clip sera egale a un nombre au hasard entre 0 et 99 pour cent de la taille initiale de "boule"
_root["boule"+i]._xscale = random(100);
// la taille verticale de ce nouveau clip sera egale a sa taille horizontale
_root["boule"+i]._yscale = _root["boule"+i]._xscale;
// ici on definie la direction des boules
_root["boule"+i].onEnterFrame = function() {
// la position verticale du nouveau clip augmentera de quatre 12 fois par seconde
this._y += 4;
// // la position horizontale du nouveau clip augmentera du cosinus (de la position verticale multiplié par 3) multiplié par cinque 12 fois par seconde
this._x += Math.cos(this._y*3)*5;
// si la position de la boule est superieur a 400 (le bas de la scene) la boule se replace en haut de la scene
if (this._y>=400) {
//la boule se replace en haut de la scene
this._y = 0;
}
};
// on augmente i de 1
i++;
}
Conclusion :
Merci a tous et bonne prog !
Vous n'êtes pas encore membre ?
inscrivez-vous, c'est gratuit et ça prend moins d'une minute !
Les membres obtiennent plus de réponses que les utilisateurs anonymes.
Le fait d'être membre vous permet d'avoir un suivi détaillé de vos demandes et codes sources.
Le fait d'être membre vous permet d'avoir des options supplémentaires.