begin process at 2012 05 26 03:36:04
  Trouver un code source :
 
dans
 
Accueil > 

Code

 > 

ActionScripts

 > BOULES DE NEIGE AVEC FONCTION DUPLICATEMOVIECLIP (MODIFIÉE COMPATIBLE MX)

BOULES DE NEIGE AVEC FONCTION DUPLICATEMOVIECLIP (MODIFIÉE COMPATIBLE MX)


 Information sur la source

Note :
7,5 / 10 - par 2 personnes
7,50 / 10

  • 1

  • 2

  • 3

  • 4

  • 5

  • 6

  • 7

  • 8

  • 9

  • 10
Catégorie :ActionScripts Niveau :Débutant Date de création :20/01/2004 Date de mise à jour :24/01/2004 20:15:35 Vu / téléchargé :8 911 / 1 539

Auteur : Prouprou_Sensei

Ecrire un message privé
Site perso
Ce membre participe au partage de revenus publicitaires
Commentaire sur cette source (6)
Ajouter un commentaire et/ou une note


 Description

Cliquez pour voir la capture en taille normale
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

  • // 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++;
  • }
// 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 !

 Fichier Zip

Les Membres Club peuvent télécharger directement un fichier contenu dans le zip sans télécharger le zip en entier !

Télécharger le zip


 Sources du même auteur

Source avec Zip Source avec une capture [FLASH 8] CLASSE BITMAPDATA (GESTION DES CLIP AU NIVEAU DU P...
Source avec Zip CHAT EN FLASH AVEC SOCKETSERVER (OREGANO) ET FONCTION CRYPTA...
Source avec Zip Source avec une capture NEWS MAKER -- GUESTBOOK (LIVRE D'OR) EN FLASH/PHP/MYSQL OU X...
Source avec Zip PRELOADER POUR JPEG AVEC REDIMENSIONNEMENT ET CENTRAGE [MX20...
Source avec Zip Source avec une capture BASE D'UN BEAT'EM ALL [AEROFIGHTER] AVEC CLASSES AS2 (MX2004...

 Sources de la même categorie

Source avec Zip Source avec une capture OUVRIR UNE ANIMATION EXTERNE DANS UN CLIP VIDE. par KcHeY
Source avec Zip ZOOM SUR UNE IMAGE par yasdar
Source avec Zip Source avec une capture UN PEU DE MATH par yasdar
Source avec Zip Source avec une capture PARTICULE SYSTEM par yasdar
Source avec Zip Source avec une capture GALLERIE PHOTO AVEC XML par yasdar

Commentaires et avis

Commentaire de cedricici le 20/01/2004 21:08:53

salut,
bien ta source, bel effet, pour peu d'octets
le clip invisible ne sert a rien, tu as deja un clip avec un evenement entenframe, c'est _root , donc tu peux utiliser
_root.onEnterFrame = function (),
de plus si tu veux vraiment alleger ta source, utilise une boule dessinée en AS dans un empty movie clip ...
a+

Commentaire de pegase31 le 23/01/2004 18:01:52 administrateur CS

Ben je voudrais bien voir cet effet aussi, moi ... et sans forcément installer MX2004 ......
De plus, ton code n'a apparement de fonctions spéciales pour cette version. Donc si tu veux que tout le monde puisse voir cette anim, pourrais-tu mettre une source MX stp ?
Merci d'avance !

Commentaire de Prouprou_Sensei le 23/01/2004 19:53:02

Voila qui est fait normalement les sources sont compatibles flash mx.
Merci de m'avoir prévenu !
Tchao !

Commentaire de arcane19 le 12/12/2004 22:52:15

Très bien fait?

Commentaire de renkill le 18/03/2005 23:04:03

wouhaou c assez koli et tout en AS c assez la classe !
gg ;)

Commentaire de imagora le 26/01/2006 19:58:37

C'est super, mais il y a moyen de l'arrêter avant la fin?

 Ajouter un commentaire




Nos sponsors


Sondage...

CalendriCode

Mai 2012
LMMJVSD
 123456
78910111213
14151617181920
21222324252627
28293031   

Consulter la suite du CalendriCode

A découvrir



 
Développement réalisé par Nicolas SOREL (Nix) avec l'aide de : Cyril DURAND et Emmanuel (EBArtSoft), Merci à Vincent pour ses précieux conseils.
CodeS-SourceS.com© Toute reproduction même partielle est interdite sauf accord écrit du Webmaster
CodeS-SourceS.com© est une marque déposée tous droits réservés

Google Coop CodeS-SourceS Google Coop CodeS-SourceS
Temps d'éxécution de la page : 0,437 sec (4)

Nous contacter | Annoncer sur CodeS-SourceS | Mentions légales