Des tremblements sous Flash?

chupastar

Membre expert
Club iGen
10 Décembre 2003
2 268
231
Bonjour à tous!

Je suis en train de me faire un petit site tout en flash, j'aimerais faire une animation: quand on pointerait son curseur sur un bouton, celui-ci se mettrait à trembler légèrement. J'ai déjà vu ça sur quelques sites (me rappel plus lesquels) et pas forcement sur des boutons.

Je précise que j'ai une connaissance vraiment basique de Flash.

J'ai fait une recherche sur http://www.flashxpress.net/ mais sans résultats.

Je vous remercie!
 
Ça dépends du tremblement que tu veux obtenir : ça peut aller de la simple boucle de 2 MC décalés d'1 px placée dans l'état survolé du bouton à une programmation avec des déplacements aléatoires...

Tu as un exemple à montrer ?
 
Je ne trouve malheureusement plus le site qui montrait bien ceci...

En fait ce serait un tremblement aléatoire rapide mais de faible amplitude, je ne sais pas si c'est comprehensible, c'est difficile à expliquer.

J'ai essayé de faire un clip avec plusieurs images décalées qui se succèdent, mais le résultat est trop répétitif et pas naturel.

Merci.
 
Personnellement, quand j'ai un facteur aléatoire à intégrer, j'utilise une fonction qui me donne un nombre "X" aléatoire entre un minimum et un maximum que je peux spécifier.

Si je fait un Goto vers ce "X", ça revient à aller à une image aléatoire.

Si je mets la même action sur chacune des images, toutes les images vont se succéder dans un ordre totalement aléatoire.

Par exemple dans ton cas, à partir du bouton je créerais un MC de 8 images. Je déplace très légèrement le bouton sur chaque image. Et sur chacune des images je colle l'action suivante :

Bloc de code:
movieclip.prototype.getRandomBetw = function(min, max) {
	if (isNaN(min)) {
	}
	if (isNaN(max)) {
	}
	return Math.round(Number(min)+Math.random()*(Number(max)-Number(min)));
};
var randomVal = getRandomBetw("1", 8);
gotoAndplay(randomVal);

var randomVal = getRandomBetw("1", 8);
Cette ligne là te permet de régler le nombre d'images (ici le chiffre sera tiré au sort entre 1 et 8)

Remarque : j'ai bricolé cette action à partir de trucs trouvés par ci par là. Je ne l'utilise surment pas de la manière la plus élégante mais ça marche. ;)


Ce MC tu n'a plus qu'à le placer sur l'état survolé de ton bouton
 
Petit nettoyage du code ci-dessus (il restait des trace inutiles d'une ancienne version)
Bloc de code:
movieclip.prototype.getRandomBetw = function(min, max) {
	return Math.round(Number(min)+Math.random()*(Number(max)-Number(min)));
};
var randomVal = getRandomBetw("1", 8);
gotoAndplay(randomVal);
Exemple de ce que ça donne
Les 2 premiers carrés sont exactement le même MC dupliqué. On voit bien que leur mouvement est aléatoire. Le 3e est un bouton dont l'état survolé est constitué de ce même MC mais superposé 4 fois avec une transparence de 30% (passer la souris dessus pour tester).

Là je n'ai pas fait dans la finesse mais plus les décalages seront subtils et les images nombreuses et variées, plus ça sera réaliste.
 
  • J’aime
Réactions: molgow
Alors j'ai essayé mais je n'y suis pas arrivé...

Etant débutant j'ai du faire un truc qu'il ne fallait pas.

J'ai d'abord créer un MC dans mon bouton "dessus", j'ai mis 8 images toutes décalées légèrement les une par rapport aux autres. Les 8 images se succèdent sans que j'ai fait d'interpolation de mouvement.
J'ai appelé ce clip "la bio clip 2".

Je sélectionne avec l'outil flèche le MC en question, celui-ci s'encadre en bleu. J'ouvre la fenêtre d'actions, je me met en mode expert, je copie/colle le code que tu m'as donné.

Mais il me dit qu'il y a des erreurs quand je reviens dans le mode normal de la fenêtre d'actions.

Je test l'animation, et au lieu de faire les images au hasard, il les fait suivre comme un clip normal.

:confused:

Dans la fenêtre "sorie" il c'est inscrit ça, si ça peux servir:

Séquence = Séquence 1, Calque = Boutons lettres, Image = 37 : Ligne 2 : L?instruction doit apparaître dans le gestionnaire on
movieclip.prototype.getRandomBetw = function(min, max) {

Séquence = Séquence 1, Calque = Boutons lettres, Image = 37 : Ligne 5 : L?instruction doit apparaître dans le gestionnaire on
var randomVal = getRandomBetw("1", 8);

Séquence = Séquence 1, Calque = Boutons lettres, Image = 37 : Ligne 6 : L?instruction doit apparaître dans le gestionnaire on
gotoAndplay(randomVal);



Y avait-il quelque chose à modifier dans ton code comme le nom du MC? J'ai un peu essayé mais rien ne change...


J'ai mis mon fichier .fla ici si tu veux y jeter un oeil: http://picsmaker.free.fr/divers/test.fla

Merci.
 
Je poursuis mon petit nettoyage (ça simplifiera la recherche d'erreur) :

Dans la 1e image il faut mettre :
Bloc de code:
movieclip.prototype.getRandomBetw = function(min, max) {
	return Math.round(Number(min)+Math.random()*(Number(max)-Number(min)));
};
var randomVal = getRandomBetw("1", 8);
gotoAndplay(randomVal);

Dans les suivantes seulement :
Bloc de code:
var randomVal = getRandomBetw("1", 8);
gotoAndplay(randomVal);
(ça évite de redéclarer à chaque fois la même chose mais de toute façon ça passait quand même)

Chez moi, Flash valide ce code pour les versions 5 et 6.


Un autre exemple de ce qu'on peut faire avec : sur cet en tête, chaque point blanc semble indépendant et il s'agit pourtant de 5 occurrences du même MC
 
  • J’aime
Réactions: Yama
Niconemo, le liens pour le fichier .fla (post n°9) me renvois vers un fichier .swf.

Tu pourrais arranger ça stp, ça m'aiderais pas mal car là je galère un peu....

Merci!