Un menu qui bouge grace au tween

3/5 (31 avis)

Vue 11 254 fois - Téléchargée 2 289 fois

Description

première source donc rien de bien compliqué mais comme j'ai galérer au départ pour le faire je suis sur que ca intéresse qqun

Source / Exemple :


stop();
import mx.transitions.Tween;
import mx.transitions.easing.*;
//déclaration des variables tween
var sup1:Tween;
var move1:Tween;
var sup2:Tween;
var move2:Tween;
//fonction qui définit la position du bouton par rapport au précedent et qui assigne les propriétes des boutons à leur masque
onEnterFrame = function () {
tbt1._x = bt1._x;
tbt2._x = bt2._x;
tbt3._x = bt3._x;
tbt4._x = bt4._x;	
tbt1._y = bt1._y;
tbt2._y = bt2._y;
tbt3._y = bt3._y;
tbt4._y = bt4._y;
bt2._y = bt1._y+bt1._height;
bt3._y = bt2._y+bt2._height;
bt4._y = bt3._y+bt3._height;}

//on passe la valeur du bouton par bt et bto définit le bouton précédemment selectionné et tbt le texte
tbt1.onRollOver = function(){
tbt=tbt1;
bto=bt;
bt=bt1;
clic();};

tbt2.onRollOver = function(){
tbt=tbt2;
bto=bt;
bt=bt2;
clic();};

tbt3.onRollOver = function(){
tbt=tbt3;
bto=bt;
bt=bt3;
clic();};

tbt4.onRollOver = function(){
tbt=tbt4;
bto=bt;
bt=bt4;
clic();};

//function qui fait bouger les boutons
function clic ()
{
	sup1 = new Tween(bto, "_yscale", Regular.easeOut, bto._yscale, 90, 1, true);
	move1 = new Tween(bt, "_height", Back.easeOut, bt._height, tbt._height-4, 1, true);
	sup2 = new Tween(bto, "_x", Regular.easeOut, bto._x, 68.2, 1, true);
	move2 = new Tween(bt, "_x", Back.easeOut, bt._x, 212.4, 1, true);
		
}

der.onRollOut= function(){
	move1.stop();
	move2.stop();
	sup1 = new Tween(bt, "_yscale", Regular.easeOut, bt._yscale, 90, 1, true);
	sup2 = new Tween(bt, "_x", Regular.easeOut, bt._x, 68.2, 1, true);
	}

Conclusion :


voila vos remarques et suggestions sont évidemment les bien venu

Codes Sources

A voir également

Ajouter un commentaire Commentaires
pegase31 Messages postés 6138 Date d'inscription dimanche 21 décembre 2003 Statut Modérateur Dernière intervention 4 septembre 2013 11
30 avril 2009 à 01:34
Intéressant, mais (oui, il y a toujours un "mais") pour être encore mieux, je te conseille de :

- placer tes menus dans un XML, car c'est pas très dynamique pour le moment
- Mettre des boucles "for" pour permettre de mettre plus de menus sans avoir à tout retaper à chaque fois
- diminuer le nombre de tweens (un seul devrais suffir pour toutes les propriétés), car tu risque d'avoir des interférences
- tout mettre en classes : une pour la barre de menus, et une pour chaque menu
- passer tout ça en as3 (mais ça reste optionnel)

Ensuite, question navigation, diminue le déplacement horizontal lors du passage de la souris, car on a l'impression que le menu se barre littéralement, et question ergonomie, ça ne fonctionne pas très bien.
Le mieux serait de faire un simple décalage à droite tout en laissant la couleur sur le bord gauche (un étirement), ça ferait plus "stable".

Sinon c'est sympa et pas trop mal ficelé pour un premier essai ;)

Peg'
nomadman Messages postés 19 Date d'inscription dimanche 22 avril 2007 Statut Membre Dernière intervention 24 mai 2011
30 avril 2009 à 12:53
ok c noté
prochaine update prochainement
j'espère arriver à tout faire sauf le cs3 (pas le temps de m'y mettre)
je pense probablement faire une gestion par php mysql
tu en pense quoi
pegase31 Messages postés 6138 Date d'inscription dimanche 21 décembre 2003 Statut Modérateur Dernière intervention 4 septembre 2013 11
30 avril 2009 à 18:50
Je n'ai pas parlé de "cs3" (qui la version 9 de flash), mais d'AS3 (qui est la version 3 du langage utilisé).

Pour le php, c'est toi qui choisis ton mode de fonctionnement, mais tu peux très bien envoyer un XML via le PHP, ce qui reviendrait exactement au même.

Après ce ne sont que des conseils pour améliorer tout ça.

Peg'
stefbuet Messages postés 576 Date d'inscription mercredi 5 janvier 2005 Statut Membre Dernière intervention 12 mai 2009
30 avril 2009 à 20:52
Salut,

Source à part, quand je vois : "première source donc rien de bien compliqué" je ne suis pas d'accord. Une première source n'implique pas de poster un truc inutile, de mauvaise qualité, obsolète ou autre, c'est comme ça que l'on retrouve des sources pourries sur flashKod... (je ne parle pas de TA source, mais juste de cette phrase)

Stef.
choupifou Messages postés 3 Date d'inscription jeudi 19 avril 2007 Statut Membre Dernière intervention 6 mai 2010
7 mai 2009 à 10:17
Merci pour cette source. Je l'ai épluché avec grand intérêt !!!

CEPENDANT: j'aurais souhaité que le menu se déroule tout simplement et n'est pas d'effet "aérien" sur le côté. Pour cela j'ai modifié le ligne suivante de code:

move2 = new Tween(bt, "_x", Back.easeOut, bt._x, 20, 0, true);

l'effet me semble bon mais j'ai toujours un décalage qui se crée quand un menu revient à sa place initiale. Pas facile à expliquer mais pour imager mes propos: "un peu comme une machine a écrire quand on revient à la ligne".

J'ai tout essayé et ça fait un jour que je suis dessus !

Help ! ^^

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.