begin process at 2012 05 26 03:30:33
  Trouver un code source :
 
dans
 
Accueil > 

Code

 > 

Animations

 > ANIMATION MOLÉCULES, AVEC : DUPLICATION SIMPLE -> DESTRUCTION / ROTATION / MOUVEMENT / CHANGEMENT ALPHA

ANIMATION MOLÉCULES, AVEC : DUPLICATION SIMPLE -> DESTRUCTION / ROTATION / MOUVEMENT / CHANGEMENT ALPHA


 Information sur la source

Note :
9 / 10 - par 2 personnes
9,00 / 10

  • 1

  • 2

  • 3

  • 4

  • 5

  • 6

  • 7

  • 8

  • 9

  • 10
Catégorie :Animations Niveau :Initié Date de création :10/06/2005 Vu / téléchargé :12 868 / 2 178

Auteur : aKheNathOn

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

 Description

Cliquez pour voir la capture en taille normale
Animation de molécules carrée, la forme importe peu, c'est l'action script qui est important, vous pouvez changer le symbole par quelque chose de plus joli.

L'animation charge un nombre initial de molécule -> explosion de celle-ci qui sortent de l'écran. Le but de ce genre d'animation c'est d'explorer un univers complexe et trés chargé.

Les molécules se déplacent aléatoirement, avec des vitesses aléatoires, sortent de l'écran puis reviennent, se dupliquent aléatoirement comme pour laisser une trace qui s'estompe.

Tout est paramétrable, et 100% action script. Vous pouvez aussi mettre l'animation en fond pour animer une baniére ou autre.

Source

  • // Sur le FRAME 1 :
  • var acceleration = 10;
  • var max_dist = 1000;
  • var max_out = 10;
  • var rotate_speed = 10;
  • var max_alpha = 80;
  • var min_alpha = 40;
  • var speed_alpha = 6;
  • _root.totalDepht = 50;
  • for (i=0; i<_root.totalDepht-1; i++) {
  • _root["clipBouge"].duplicateMovieClip("cp"+i, i+1);
  • setProperty("cp" + i, _x, random(600));
  • setProperty("cp" + i, _y, random(400));
  • setProperty("cp" + i, _alpha, random(max_alpha-min_alpha)+min_alpha);
  • }
  • stop();
  • // Dans la MovieClip clipBouge -> FRAME 1
  • onClipEvent (enterFrame) {
  • if (this.mode==1) {
  • if (this._alpha>0) {
  • this._alpha -= 10;
  • } else {
  • this.removeMovieClip();
  • }
  • return false;
  • }
  • if (this.go_x<1 || (this._x == this.go_x && this._y == this.go_y) || (this.a_x<1 && this.a_y<1)) {
  • this.rgo_x = random(_root.max_dist);
  • this.rgo_y = random(_root.max_dist);
  • this.go_x += random(this.rgo_x)-(this.rgo_x/2);
  • this.go_y += random(this.rgo_y)-(this.rgo_y/2);
  • if (this.go_x < -10 || this.go_y < -10 || this.go_x>600 || this.go_y>400) {
  • this.is_out +=1
  • this.b_out = true;
  • if (this.is_out>_root.max_out) {
  • this.is_out = 0;
  • this.go_x = random(600);
  • this.go_y = random(400);
  • }
  • } else {
  • this.is_out = 0;
  • this.b_out = false;
  • }
  • this.distance = Math.abs(this.go_x - this._x) / Math.abs(this.go_y - this._y);
  • this.inc = this.distance / _root.acceleration;
  • this.acc = _root.acceleration;
  • this.bouge += 1;
  • if (this.bouge % 10 == 0 && this.b_out == false) {
  • var nom = "f_"+this._name+"_"+this.bouge;
  • _root.totalDepht += 1;
  • this.duplicateMovieClip(nom, _root.totalDepht);
  • setProperty(nom, _x, this._x);
  • setProperty(nom, _y, this._y);
  • this._parent[nom].mode = 1;
  • }
  • }
  • this._parent["btnClip"]._rotation += random(_root.rotate_speed);
  • this._parent._alpha += random(_root.speed_alpha) - (_root.speed_alpha/2);
  • if (this._parent._alpha<_root.min_alpha) {
  • this._parent._alpha = _root.min_alpha;
  • }
  • if (this._parent._alpha>_root.max_alpha) {
  • this._parent._alpha = _root.max_alpha;
  • }
  • if (this._parent["btnClip"]._rotation>360) {
  • this._parent["btnClip"]._rotation = 0;
  • }
  • this.a_x = (this.go_x-this._x) / this.acc;
  • this._x += a_x;
  • this.a_y = (this.go_y-this._y) / this.acc;
  • this._y += a_y;
  • }
// Sur le FRAME 1 :
var acceleration = 10;
var max_dist = 1000;
var max_out = 10;
var rotate_speed = 10;
var max_alpha = 80;
var min_alpha = 40;
var speed_alpha = 6;

_root.totalDepht = 50;

for (i=0; i<_root.totalDepht-1; i++) {
	_root["clipBouge"].duplicateMovieClip("cp"+i, i+1);
	setProperty("cp" + i, _x, random(600));
	setProperty("cp" + i, _y, random(400));
	setProperty("cp" + i, _alpha, random(max_alpha-min_alpha)+min_alpha);
}
stop();

// Dans la MovieClip clipBouge -> FRAME 1
onClipEvent (enterFrame) {
	if (this.mode==1) {
		if (this._alpha>0) {
			this._alpha -= 10;
		} else {
			this.removeMovieClip();
		}
		return false;
	}
	if (this.go_x<1 || (this._x == this.go_x && this._y == this.go_y) || (this.a_x<1 && this.a_y<1)) {
		this.rgo_x = random(_root.max_dist);
		this.rgo_y = random(_root.max_dist);
		this.go_x += random(this.rgo_x)-(this.rgo_x/2);
		this.go_y += random(this.rgo_y)-(this.rgo_y/2);
		if (this.go_x < -10 || this.go_y < -10 || this.go_x>600 || this.go_y>400) {
			this.is_out +=1
			this.b_out = true;
			if (this.is_out>_root.max_out) {
				this.is_out = 0;
				this.go_x = random(600);
				this.go_y = random(400);				
			}
		} else {
			this.is_out = 0;
			this.b_out = false;
		}
		this.distance = Math.abs(this.go_x - this._x) / Math.abs(this.go_y - this._y);
		this.inc = this.distance / _root.acceleration;
		this.acc = _root.acceleration;
		this.bouge += 1;
		if (this.bouge % 10 == 0 && this.b_out == false) {
			var nom = "f_"+this._name+"_"+this.bouge;
			_root.totalDepht += 1;
			this.duplicateMovieClip(nom, _root.totalDepht);
			setProperty(nom, _x, this._x);
			setProperty(nom, _y, this._y);
			this._parent[nom].mode = 1;
		}
	}
	
	this._parent["btnClip"]._rotation += random(_root.rotate_speed);
	
	this._parent._alpha += random(_root.speed_alpha) - (_root.speed_alpha/2);
	
	if (this._parent._alpha<_root.min_alpha) {
		this._parent._alpha = _root.min_alpha;
	}
	
	if (this._parent._alpha>_root.max_alpha) {
		this._parent._alpha = _root.max_alpha;
	}
	
	if (this._parent["btnClip"]._rotation>360) {
		this._parent["btnClip"]._rotation = 0;
	}
	
	this.a_x = (this.go_x-this._x) / this.acc;
	this._x += a_x;
	this.a_y = (this.go_y-this._y) / this.acc;
	this._y += a_y;
}

 Conclusion

Aucun bug connu pour le moment, si vous avez utilisé cette animation vous pouvez m'envoyer un lien, je le donnerais en exemple sur cette page.

Bonne prog à tous, akh

 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 KILL THEM ALL - 3D MAZE / RAY CASTING GAME
Source avec Zip CLASSE DE LIAISON ET DE REQUETTAGE AVEC UN SERVEUR MYSQL DIS...
Source avec Zip Source avec une capture ANIMATION SUR DU TEXTE - THEME DE L'AMOUR
Source avec Zip Source avec une capture EFFET RIDEAUX DE THEATRE EN ACTION SCRIPT

 Sources de la même categorie

Source avec Zip Source avec une capture CARROUSEL MENU FLASH AS3 2012 par captainpat
Source avec Zip Source avec une capture IMPERIUM - ANIMATIONS MONSTRE par narftech
Source avec Zip Source avec une capture IMPERIUM - ANIMATIONS SPACE OPÉRA - PACK 3 par narftech
Source avec Zip Source avec une capture IMPERIUM - ANIMATIONS SPACE OPÉRA - PACK 2 par narftech
Source avec Zip Source avec une capture IMPERIUM - ANIMATIONS SPACE OPÉRA par narftech

Commentaires et avis

Commentaire de pegase31 le 10/06/2005 13:23:02 administrateur CS

oh les vilains "setProperty" de Flash 4.0 ! Beurk ....

Peg'

Commentaire de aKheNathOn le 10/06/2005 14:10:59

lol ... je patauge un peu avec toutes ces fonctions, et ça aide pas de regarder les actions scripts des autres ...
C'est vrai qu'en Action Script on peut écrire une chose de plusieures maniéres.

Si kkl1 à un lien à partager avec les techniques de programmation les plus conséillées, je suis prenneur.

Commentaire de on_drag_on le 10/06/2005 17:08:21

Ben moi je pense que tu frimes quand tu dis que tu sais pas faire une interpolation ;-) bon à part apprécier le résultat suis trop newb. pour capté ta source... (à part que je me demande à quoi ça peut bien servir à part faire joli). mais pour répondre à ta question voici quelques liens... peut-être que y'en a un qui te conviendras:

http://www.actionscript.org/french/index.shtml
http://flash.media-box.net/index.php?showtopic=1927
http://www.suliworld.com/index.php?2004/07/28/75-tutorial-flash-actionscript
http://www.siteduzero.com/vostutos/?s=af&afsub=31
http://developpeur.journaldunet.com/tutoriel/fla/040330-flash-transparent.shtml
http://zoneflashmx.free.fr/zone_flashmx_textfield_53p_hscroll.html

A+.

Commentaire de aKheNathOn le 10/06/2005 19:27:02

Il y à 2 utilités à cette source :

1 - faire de l'animation sur un background, histoire de le faire vivre un peu

2 - Imagines que t'as une gallerie de 100 photos, et que tu veux la présenter dans un style ludique, et non conventionel, tu vas mettre au lieu de ces carrés des images dans chaque carré. Ils vont tous se balader, t'en auras une 20aine qui se voient sur l'écran, et les autres en dehors mais qui vont y revenir à un moment ou un autre. A toi de faire l'action quand tu cliques sur le symbole, mais bon imaginons qu'il s'agrandisse pour se mettre en plein écran, et les autres en dessous. Enfin bon, ça fais une galerie photos originale, sans parlr du faire que l'anim peut être complétée, et faites varier les paramétres comme vous le voulez.

PS on_drag_on : Je te confirme je suis bien un newbie cf mail.

Commentaire de badoux le 11/06/2005 10:44:33

Ben moi,

Je trouve cool, bon il faudrai retoucher suivant nos besoin ! Mais cette une bonne sources pour moi, et je soutien des sourcs comme ça parceque si on commence a les critiquers on en verra plus, et moi j'ai besoin de sources comme celle-ci, etant donné que j'en me sert comme tuto !

Je ne connais pas cette fonction " setProperty " mais pour soutenir aKheNathOn je peux dire que peut etre elle est vieille, mais au moin elle fonction !:)

Allé A+ et ne fais pas attention à Peg' c'est un raleur ! ;)

Commentaire de badoux le 11/06/2005 11:10:08

Ben moi,

Je trouve cool, bon il faudrai retoucher suivant nos besoin ! Mais cette une bonne sources pour moi, et je soutien des sourcs comme ça parceque si on commence a les critiquers on en verra plus, et moi j'ai besoin de sources comme celle-ci, etant donné que j'en me sert comme tuto !

Je ne connais pas cette fonction " setProperty " mais pour soutenir aKheNathOn je peux dire que peut etre elle est vieille, mais au moin elle fonction !:)

Allé A+ et ne fais pas attention à Peg' c'est un raleur ! ;)

Commentaire de mathadore le 15/06/2005 17:08:04

quel est le pb avec les "setProperty"
si ca marche

Commentaire de pegase31 le 15/06/2005 17:14:23 administrateur CS

c'est le même que de traverser au vert, même s'il n'y a pas de voitures !
ou d'utiliser des signaux de pigeons voyageurs à l'ère de l'informatique ...

Peg'

Commentaire de mathadore le 15/06/2005 18:08:10

un commentaire sibylin de pegase qui ne fait pas avancer le chemelemele
La question que je pose est donc comment faire autrement que set property ?

Commentaire de aKheNathOn le 15/06/2005 19:12:58

je suis celui concerné par ce message, et faut mettre de coté sa soi dissons fierté. Je suis d'accord avec pagase, si c'est fonction est vieille et non optimisée elle ne devrais pas être utilisée.

Comme je l'ait dit, je débute, et je ne le savais pas. J'ai un mélange entre les vieilles sources et les nouvelles, donc j'ai pas essayé de calculer.

Elle m'arrange bien car quand je crée des objets dynamiques je peux aisement les manipuler. L'alternative est d'utiliser des tableaux qui répértorient ces objets style _root["obj"+variable] ou bien this["obj"+variable] ...

Si on y réfléchit, pour atteindre un objet et une valeur c'est mieux d'utilise le pointeur de la variable à la place d'une fonction (en principe ça risque d'être au moins 2 fois moins rapide).

Avec la fonction :
pile d'appel -> fonction -> Pointeur vers objet -> Propriétée

Avec le pointeur directement :
Pointeur vers objet -> Propriétée

Je sais pas, je me gourre peut être en tout cas une chose est sûr, ça va pas être visible sur les ticks machine pour un simple appel, mais pour des animations ça risque de faire perdre quelques Milli-secondes.

Ainsi pegase -> motion adaptée :)

Commentaire de pegase31 le 15/06/2005 19:48:00 administrateur CS

moi on me pose une question, j'y réponds du mieux possible .. sans pré-mâcher la réponse, histoire de faire unpeu marcher vos cerveaux !;)

Mais puisque réfléchir vous aide encore moins, je vais tout vous expliquer de A à Z sur les avances de syntaxes entre Flash 4 et Flash7 (plus précisément, depuis Flash 5.0) :

Alors avant Flash 5 était la syntaxe à "/" référence à l'arborescence HTML, tels que pour appeller une variable dans un clip, il fallait écrire : Clip1/Clip2/Clip3:Variable
Puis vient Flash 5.0 et sa syntaxe un peu bizarre au début, mais bien plus simple. Dite "syntaxe à point", elle améliore la disponibilité des clips en simplifiant l'écriture. Le même appel à la variable dans les clips donnerait : Clip1.Clip2.Clip3.Variable

De même que certaines fonction tels que "getProperty" et "setProperty" sont devenues obsolètes, car : setProperty(Clip1/Clip2/Clip3, _x, 200); devient : Clip1/Clip2/Clip3._x=200; Bien plus lisible (non ?)

Alors si on utilises "setProperty" il faudrait aussi réutiliser la syntaxe à "/", vous verrez, ça marche aussi !!! Mais franchement, les petits gars qui viennent voir votre code et se disent "tiens, Set(A, B) d'est cool ..." alors que "A=B" éviterai d'apprendre des trucs dépassés, même si ça marche !

Je développe ou tout le monde à compris ?

Peg' (Fier et surtout quand ça vous emm**** .. non mais!)

Commentaire de aKheNathOn le 15/06/2005 20:33:22

lol Peg, pas mal l'explication, 90% de ce que tu as dit je le conaissais pas. C ça le désavantage d'apprendre en regardant des codes ... le risque étant d'apprendre des mauvaises méthodes, et de les reproduire.

Pour ma part Clip1/Clip2/Clip3._x=200 ça me va. Est-ce que je peux écrire ça :

for (i=0; i<10; i++) {
  ("clip" + i)._x += 1;
}

par exemple ...

Commentaire de pegase31 le 15/06/2005 20:39:44 administrateur CS

Clip1_Clip2/Clip3._x marche pas, tu mélanges les 2 syntaxes ...

Modifies par : this("clip"+i)._x++ (A+=1 => A++)

Peg'

 Ajouter un commentaire




Nos sponsors


Sondage...

CalendriCode

Mai 2012
LMMJVSD
 123456
78910111213
14151617181920
21222324252627
28293031   

Consulter la suite du CalendriCode

Photothèque

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

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