[flash 8] simple animation as d'oiseaux et de nuages

Soyez le premier à donner votre avis sur cette source.

Vue 30 225 fois - Téléchargée 4 212 fois

Description

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 / Exemple :


// 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...

Codes Sources

A voir également

Ajouter un commentaire

Commentaires

Messages postés
2
Date d'inscription
samedi 6 octobre 2007
Statut
Membre
Dernière intervention
1 août 2010

Bonjour,

Merci beaucoup pour ce code, ça m'a permis de comprendre des fonctions de base d'ActionScript (je débute en Flash).
Par exemple, la fonction "attachMovie" qui fait appel à l'identifiant du symbole et non à son nom dans la bibliothèque. Intéressante cette case "Exporter pour ActionScript" à cocher dans les propriétés du symbole, j'ai bien mis 2h avant de la trouver et donc comprendre pourquoi mon code ne fonctionnait pas...

Merci encore,

Tadio

PS : quelqu'un saurait-il comment activer cette option pour plusieurs symboles en même temps? J'en ai 360 à faire comme ça... Merci!
Messages postés
2
Date d'inscription
samedi 6 octobre 2007
Statut
Membre
Dernière intervention
1 août 2010

Bonjour,

Merci beaucoup pour ce code, ça m'a permis de comprendre des fonctions de base d'ActionScript (je débute en Flash).
Par exemple, la fonction "attachMovie" qui fait appel à l'identifiant du symbole et non à son nom dans la bibliothèque. Intéressante cette case "Exporter pour ActionScript" à cocher dans les propriétés du symbole, j'ai bien mis 2h avant de la trouver et donc comprendre pourquoi mon code ne fonctionnait pas...

Merci encore,

Tadio
Messages postés
156
Date d'inscription
lundi 23 juin 2003
Statut
Membre
Dernière intervention
27 janvier 2009

Oui c'est de l'image par image... Il faut ouvrir le clip bird pour voir les étapes de l'animation.
Messages postés
1
Date d'inscription
lundi 1 décembre 2008
Statut
Membre
Dernière intervention
27 janvier 2009

je voulais juste savoir comment faire une animation de battement des ailes aussi fluide
?c'est image par image?merci.super animation tres utile.
Messages postés
4
Date d'inscription
mercredi 19 septembre 2007
Statut
Membre
Dernière intervention
15 décembre 2008

un merci un peu tardif mais merci beaucoup ça fonctionne :)
Afficher les 30 commentaires

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.