begin process at 2010 02 09 18:30:25
  Trouver un code source :
 
dans
 
Accueil > 

Code

 > 

Animations

 > [FLASH 8] SIMPLE ANIMATION AS D'OISEAUX ET DE NUAGES

[FLASH 8] SIMPLE ANIMATION AS D'OISEAUX ET DE NUAGES


 Information sur la source

Note :
8,43 / 10 - par 7 personnes
8,43 / 10

  • 1

  • 2

  • 3

  • 4

  • 5

  • 6

  • 7

  • 8

  • 9

  • 10
Catégorie :Animations Classé sous :oiseau, animation, nuage, actionscript Niveau :Débutant Date de création :03/12/2007 Date de mise à jour :01/06/2008 10:16:20 Vu / téléchargé :19 970 / 2 876

Auteur : webrunner

Ecrire un message privé
Commentaire sur cette source (28)
Ajouter un commentaire et/ou une note

 Description

Cliquez pour voir la capture en taille normale
Je cherchais un moyen court de rendre un vol d'oiseaux crédible, j'ai donc écrit ce très très simple code qui sera peut-être utile aux débutants. J'espère que le rendu vous plaira. Je pense qu'il serait encore mieux en baissant la luminosité des oiseaux des second et troisième plans...

- Le principe d'animation des nuages est le même que celui des oiseaux, en plus simple.
- J'utilise this dans mon code car je fais initialement charger ce flash dans un autre.
- La source est en Flash 8 car j'utilise un filtre flou pour les nuages.
- La photo représente l'Opéra de Paris.

Source

  • // Vitesse maxi des oiseaux
  • this.birdsMaxSpeed=3;
  • // Nombre d'oiseaux
  • this.birdsNumber=30;
  • // Fonction d'affichage
  • this.placeBirds=function(){
  • for(i=1; i<=this.birdsNumber; i++){
  • // Attachement du clip bird
  • this.attachMovie("bird","bird"+i,i);
  • // Position x entre 0 et -700
  • this["bird"+i]._x=0-Math.round (Math.random ()*700);
  • // Position y entre 100 et 217
  • this["bird"+i]._y=100+Math.round (Math.random ()*117);
  • // Vitesse entre 1 et vitesse maxi
  • this["bird"+i].speed=1+Math.round (Math.random ()*(this.birdsMaxSpeed-1));
  • // On décale le mouvement d'1 oiseau sur 3 de 5 images vers l'avant
  • if (i%3==1){this["bird"+i].birdy.gotoAndPlay(5);}
  • // On décale le mouvement d'1 oiseau sur 3 de 10 images vers l'avant
  • if (i%3==2){this["bird"+i].birdy.gotoAndPlay(10);}
  • // Taille de l'oiseau selon sa vitesse (100% pour 3, 50% pour 2, 33% pour 1)
  • this["bird"+i]._xscale=100/(4-this["bird"+i].speed);
  • this["bird"+i]._yscale=100/(4-this["bird"+i].speed);
  • // On lance le mouvement de chaque oiseau
  • this["bird"+i].onEnterFrame=function(){
  • // Vitesse horizontale : constante selon la vitesse individuelle de départ
  • this._x+=this.speed;
  • // Déplacement horizontal aléatoire de plus ou moins 1 pixel, ou 0
  • this._y+=Math.round (Math.random ()*2)-1;
  • // A la sortie de l'écran, on renvoie l'oiseau deux écrans en arrière
  • if (this._x>710){this._x=-700;}
  • }
  • }
  • }
  • this.placeBirds();
// Vitesse maxi des oiseaux
this.birdsMaxSpeed=3;
// Nombre d'oiseaux
this.birdsNumber=30;
// Fonction d'affichage
this.placeBirds=function(){
	for(i=1; i<=this.birdsNumber; i++){
		// Attachement du clip bird
		this.attachMovie("bird","bird"+i,i);
		// Position x entre 0 et -700
		this["bird"+i]._x=0-Math.round (Math.random ()*700);
		// Position y entre 100 et 217
		this["bird"+i]._y=100+Math.round (Math.random ()*117);
		// Vitesse entre 1 et vitesse maxi
		this["bird"+i].speed=1+Math.round (Math.random ()*(this.birdsMaxSpeed-1));
		// On décale le mouvement d'1 oiseau sur 3 de 5 images vers l'avant
		if (i%3==1){this["bird"+i].birdy.gotoAndPlay(5);}
		// On décale le mouvement d'1 oiseau sur 3 de 10 images vers l'avant
		if (i%3==2){this["bird"+i].birdy.gotoAndPlay(10);}
		// Taille de l'oiseau selon sa vitesse (100% pour 3, 50% pour 2, 33% pour 1)
		this["bird"+i]._xscale=100/(4-this["bird"+i].speed);
		this["bird"+i]._yscale=100/(4-this["bird"+i].speed);
		// On lance le mouvement de chaque oiseau
		this["bird"+i].onEnterFrame=function(){
			// Vitesse horizontale : constante selon la vitesse individuelle de départ
			this._x+=this.speed;
			// Déplacement horizontal aléatoire de plus ou moins 1 pixel, ou 0
			this._y+=Math.round (Math.random ()*2)-1;
			// A la sortie de l'écran, on renvoie l'oiseau deux écrans en arrière
			if (this._x>710){this._x=-700;}
		}
	}
}
this.placeBirds();

 Conclusion

C'est tout, j'ai dit que c'était du basique...

 Fichier Zip

Les Membres Club peuvent télécharger directement un fichier contenu dans le zip sans télécharger le zip en entier !
  • birds.flaTélécharger ce fichier [Réservé aux membres club]336 384 octets
  • birdsMX.flaTélécharger ce fichier [Réservé aux membres club]305 664 octets
  • birdsMX.swfTélécharger ce fichier [Réservé aux membres club]Voir ce fichier75 011 octets

Télécharger le zip


 Historique

03 décembre 2007 01:28:26 :
J'ai précisé qu'il s'agissait de Flash 8
01 juin 2008 10:16:20 :
J'ai ajouté la version MX2004. Par contre, vous perdez le flou des nuages... Je les ai quand même laissés.

 Sources du même auteur

Source avec Zip Source avec une capture USINE DE BOÎTES À MEUH OU LA 3D RECONSTITUÉE DANS FLASH POUR...
Source avec Zip Source avec une capture GALERIE PHOTO(OU SWF)/SON/TEXTE + SLIDESHOW + SKINS + FONCTI...
Source avec Zip MICRO PLAYER MP3 POUR VOS PAGES WEB (VERSION SON UNIQUE OU V...
Source avec Zip Source avec une capture UN DESIGN DE BORNE D'ARCADE MODIFIABLE EN FLASH
Source avec Zip UNE RÉGLETTE POUR CHOISIR UNE VALEUR ENTRE 1 ET ET UNE VARI...

 Sources de la même categorie

Source avec Zip OBJETFLASH! par LeFlashiste
Source avec Zip Source avec une capture ANIMATION FLASH, DÉPLACEMENT D'OBJET par lofawu
Source avec Zip FLAMME EN FLASH TOUTE SIMPLE par darksoul
Source avec Zip VISITE À LA CAMPAGNE par quent191
Source avec Zip PERSPECTIVE par quent191

 Sources en rapport avec celle ci

Source avec Zip EXAMPLES DE TWEENS AS2 par rajas
Source avec Zip OBJETFLASH! par LeFlashiste
Source avec Zip Source avec une capture ANIMATION FLASH, DÉPLACEMENT D'OBJET par lofawu
Source avec Zip Source avec une capture CALCUL DE PI PAR L'ÉQUATION DE LEIBNIZ EN AS3 par Clem_02
Source avec Zip COMPOSANT BULLEUR par fredvlvcec

Commentaires et avis

Commentaire de choinet le 04/12/2007 23:09:54 9/10

Salut, j'aime beaucoup ton anim.
J'ai une question sur ton code ouverte à tous d'ailleur: est-ce mieux de faire un enterFrame dans une boucle répétée 30 fois ou une boucle dans un enterFrame ? Mathématiquement, c'est la même chose non? Y a t'il une méthode plus indiquée?

Choinet

Commentaire de peter_pan le 04/12/2007 23:53:08

Pourrais-tu mettre le swf dans le ZIP? Je suis en flash 7.

Commentaire de MADenigma le 05/12/2007 10:48:24

animation intéressante et bien utile, ça permet d'économiser le temps.

Commentaire de dasuza666 le 06/12/2007 16:59:25

Bonjour et félicitation pour ton animation , c'est tres beau et bien réussi. Ma question est '' comment faire pour le mettre en 2 eme plan .. supposons derriere une branche ?.'' Merci beaucoup ! ps je suis un débutant :P

Commentaire de webrunner le 06/12/2007 18:02:17

Salut Dasuza666, pour mettre une branche dans le premier plan il suffit de créer un nouveau calque au-dessus du calque Clouds et d'y mettre ton dessin de branches. Le calque le plus haut de la pile est au-dessus des autres...

Pour Choinet et sa question, j'avoue ne pas savoir si cela fait une différence...

Commentaire de dasuza666 le 06/12/2007 19:28:49

Merci bcp de ta réponse, je vais essayer sa toute suite !!

Commentaire de stefbuet le 09/12/2007 20:16:44

choinet :
tu voudrais dire faire :
onEnterFrame=function() {
for(i=0;i<=X;i++) {
//code
}
}
et
for(i=0;i<=X;i++) {
truc.onenterframe=function();
}
}

dans un cas on a X onEnterframe
dans l'autre on en a que 1 mais en contre partie un for...

faut faie des test...

Commentaire de choinet le 09/12/2007 22:51:57

J'ai fait des tests et ça revient grosso modo au même, mais peut-être ya t'il une contre-indication sur l'une des deux méthodes. Je n'ai pas de réponse.
Perso je fais au plus intuitif, comme ça vient...

Bon code à tous

Commentaire de naruda le 10/12/2007 09:54:15 10/10

Très joli. Pas mal, la solution pour les nuages.
Merci

Commentaire de webrunner le 10/12/2007 11:20:03

J'ai remarqué un point illogique dans mon code :
dans les lignes,
#  this["bird"+i]._xscale=100/(4-this["bird"+i].speed);
# this["bird"+i]._yscale=100/(4-this["bird"+i].speed);
il serait plus normal de remplacer 4 par (birdsMaxSpeed+1), en effet, c'est bêta d'initialiser une variable pour après ne pas s'en servir ;)

Commentaire de peter_pan le 10/12/2007 22:16:27 1/10

J'attends toujours mon swf STP.

Commentaire de Frenzey le 22/12/2007 18:16:55 10/10

gg ;)

Commentaire de invivolabo le 04/01/2008 18:46:48 10/10

top, merci

Commentaire de jpwowo le 31/01/2008 11:13:39

Bonjour
Super les oiseaux, vraiment joli !
Je voudrai les rendre noir, mais je n'ai pas trouvé comment faire ?
Merci et encore bravo

Commentaire de webrunner le 31/01/2008 12:00:24

Deux méthodes :
(1) il faut aller dans la bibliothèque, trouver le symbole d'oiseau "bird", l'ouvrir, et image par image, sélectionner l'oiseau et changer son remplissage par noir
(2) en actionscript, dans la fonction de création des oiseaux "placeBirds", donner d'office à this["bird"+i] la propriété qui baisse sa luminosité à 0 ou qui lui donne la couleur noire...

Avant tout mon code, ajouter :

MovieClip.prototype.setBrightness = function(level, wide){
   this.brightness = this.brightness ? this.brightness : new Color(this);
   var lb = Math.round(level * (wide ? 1 : 2.55));
   this.levels = {ra:100,rb:lb,ga:100,gb:lb,ba:100,bb:lb,aa:100,ab:lb};
   this.brightness.setTransform(this.levels);
}

En ligne 9, insérer :
// Luminosité de l'oiseau entre -100 et 100... -100 pour TOUT NOIR, +100 pour TOUT BLANC
this["bird"+i].setBrightness(-100);

J'ai pas testé, mais ça doit marcher (la fonction n'est pas de moi)...

Commentaire de wilogik le 09/05/2008 15:32:24 9/10

Bonjour à tous, je suis un débutant et je ne trouve pas la méthode pour passer les oiseaux en arriere plan, même si je change la place des calques cela ne fonctionne pas.
Le "onEnterFrame" y est il pour quelque chose?

Commentaire de webrunner le 09/05/2008 22:59:15

Non, c'est dû à cette ligne :
this.attachMovie("bird","bird"+i,i);

le troisième argument (i) correspond au niveau où l'on place le symbole... Comme je place 30 oiseaux, je les place chacun sur un niveau numéroté de 1 à 30, niveaux qui se superposent à l'animation principale comme des calques.

Essaie
this.attachMovie("bird","bird"+i,i-200);
comme ça tu auras tes oiseaux sur des niveaux allant de -199 à -170, qui logiquement seront sous tout le reste de ton animation... Les niveaux peuvent être négatifs... Tiens moi au courant.

Commentaire de wilogik le 12/05/2008 11:43:23

Merci pour le temps passé à m'aider :)
Cela ne fonctionne pas, ils restent au premier plan.
J'ai testé:
this.attachMovie("bird","bird"+i,i-200);

this.attachMovie("bird","bird"+i,i-500;

Infos complémentaires (aucas où ça pourrait t'aider:) )
Mes autres clips ne sont pas attachés en "attachMovie", ils sont juste sur des calques suppérieurs.
Je cherche avec mes maigres connaissances, en testant, mais pour le moment je trouve rien.


Commentaire de webrunner le 12/05/2008 12:21:08

Et en mettant le code des oiseaux sur des calques inférieurs ? J'ai pas testé, désolé pas le temps :)

Commentaire de wilogik le 12/05/2008 12:41:12

Non même chose, j'ai aussi plusieurs séquences, donc je vais faire d'autres essais.
Merci tout de même de m'avoir répondu :)

Commentaire de woogie36 le 30/05/2008 17:28:04

cela a l'air tres utile.
mais je ne'ai que la version 7 et il m'est impossible de le tester.
pourrais tu mettre un zip pour la 7?
si possible
merci a toi

Commentaire de webrunner le 30/05/2008 22:50:35

Ok je mettrai le zip version 7 demain

Commentaire de woogie36 le 31/05/2008 18:16:22

alaiz
mille merci
webrunner

Commentaire de webrunner le 01/06/2008 10:17:52

Voilà WOOGIE36, la version MX est incluse. Avec perte du filtre de flou sur les nuages.

Commentaire de zoontag le 30/10/2008 16:29:17

Pour les oiseaux au second plan : Créer un nouveau clip,dans lequel tu mets ton code. Le "problème" vient du "this". Comme c'est fait ds le zip, si le code est sur ta scene, il te mettra les oiseaux au dessus de tout le reste.

Commentaire de wilogik le 15/12/2008 23:27:02

un merci un peu tardif mais merci beaucoup ça fonctionne :)

Commentaire de tinanard le 27/01/2009 04:40:49 10/10

je voulais juste savoir comment faire une animation de battement des ailes aussi fluide
?c'est image par image?merci.super animation tres utile.

Commentaire de webrunner le 27/01/2009 13:19:49

Oui c'est de l'image par image... Il faut ouvrir le clip bird pour voir les étapes de l'animation.

 Ajouter un commentaire


Discussions en rapport avec ce code source dans le forum

Animation sur FLASH MX 2004 [ par m666jr ] Salut tout le monde !J'aimerais quelqu'un personne peut m'aider pour faire l'actionScript FLASH MX 2004. Je voulais faire une animation comme l'atome Besoin d'aide en ActionScript [ par Neuch3D ] Bonjour,J'aimerais pouvoir ajouter&nbsp;plusieurs menus avec sous-menus verticaux n'importe o&#249; et dans plusieurs frames dans une animation Flash attente de la fin de l'animation d'un movieclip avant de reprendre l'execution de l'actionscript. [ par diogen ] Bonjour a tousVoici mon premier message sur ce forum bien pratique.Je pr&#233;cise que je ne maitrise pas bien l'actionScript et que le structure de m faire animation avec actionscript [ par mathben ] Bonjour, je voudrais savoir si c'est possible de faire une animation avec de l'actionscript.Je vais vous dire ce que je veux.J'ai reproduit un système actionscript frame 1 [ par biloute73 ] Bonjour, j'ai mis mon code actionscript dans un claque et une image pour une animation qui dure plusieurs frames. J'ai étendue cette frame sur toute l quelle fonction actionscript pour recuperer le numero de frame courant de l'animation en cours ? [ par arttoy ] une question de debutant sans doute...;-) comment puis je connaitre le numero de la frame plac&#233;e sous le curseur de l'animation lors du clic sur Exécuter un .swf dans une animation [ par stefane321 ] bonjour, J'ai une animation flash que je veux faire jouer en fond de mon animation principal. en fouillant dans google le mieux que jai réussi a fai problème actionscript 2 [ par lolosushi ] Bonjour! j'avais déjà poser une question pour un problème de déplacement, qui est maintenant réglé mais a présent je me confronte a un autre : c'est u animation actionscript [ par YoMan89 ] Est-il tout simplement possible d'animer un clip de la scène, entièrment gràce a l'actionscript seulement ????[ exemple : déplacer un cercle de gauche Retarder la lecture d'une animation apres rollout en "actionscript" pour un menu [ par sargame ] Bonjour à tous,Voila j'ai un petit souci et besoin de votre aide, comme vous avez pu le deviner, je suis nouveau né en actionscript pour posez ce genr


Nos sponsors


Sondage...

Comparez les prix

CalendriCode

Février 2010
LMMJVSD
1234567
891011121314
15161718192021
22232425262728

Consulter la suite du CalendriCode

 
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,562 sec (3)

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