Menu flash navigation

nuggette Messages postés 5 Date d'inscription mercredi 16 février 2005 Statut Membre Dernière intervention 19 septembre 2005 - 16 févr. 2005 à 21:40
WhiteMagus Messages postés 764 Date d'inscription lundi 21 juin 2004 Statut Membre Dernière intervention 5 février 2010 - 17 févr. 2005 à 22:47
J'ai un problème avec un menu que j'ai réalisé : on le controle avec deux fleches (gauche/droite). Qund on clique le menu se déplace d'une distance définie en ralentissant a la fin avant de s'arreter. Hors, mon probleme, c'est que lorsque l'on clique plusieurs fois d'affiler sur une des fleches, le menu est décalé puisque a chaque clic, le bandeau n'a pas le temps d'atteindre sa position finale avant de redémarrer.
Je suis coincée.
J'espère que je suis claire : c pas evident sans le flash sous les yeux.
Avez-vous une solution?
Connaissez vous un code source quelque part?

Merci !

Nuggette :)

5 réponses

WhiteMagus Messages postés 764 Date d'inscription lundi 21 juin 2004 Statut Membre Dernière intervention 5 février 2010
16 févr. 2005 à 22:24
Salut.
Ne mets les action de tes touches de clavier que sur la première et la dernière image de l'interpolation. Ainsi durant le déplacement, il sera inactif.
Si ça va pas il faudra que tu précises : le déplacement : AS ? ou interpolation ? Il faudra que tu donnes le code actuel de ta source et si possible mettre le swf sur internet.
@+ !

À tout problème réside une solution. Si il n'y a pas de solution, c'est qu'il y a un problème.
0
nuggette Messages postés 5 Date d'inscription mercredi 16 février 2005 Statut Membre Dernière intervention 19 septembre 2005
16 févr. 2005 à 22:47
Salut,

Merci de t'interesser a mon cas desesperé!
En fait, c une navigation avec clips en guise de bouton_droit et bouton_gauche (pas de clavier).
J'ai mis en ligne mon fla : "chauss_test.fla"
Tu vas vite comprendre mon probleme.

http://crma.gobelins.fr/~esidoli/PB%20FLASH/

Merci beaucoup !

Nuggette :)
0
WhiteMagus Messages postés 764 Date d'inscription lundi 21 juin 2004 Statut Membre Dernière intervention 5 février 2010
17 févr. 2005 à 16:40
Tiens, voilà le code que j'ai fait. J'ai essayé de garder un max de ton code pour qu'il soit plus facilement adaptable :

var DEPLACEMENT:Number = 50;
this.droite.DEPLACEMENT = DEPLACEMENT;
this.gauche.DEPLACEMENT = -DEPLACEMENT;
var enRoute:Boolean = false;


this.droite.onPress this.gauche.onPress function () {
var carre_mc = this._parent.carre;
if (!enRoute) {
carre_mc.xFinal = carre_mc._x+this.DEPLACEMENT;
enRoute = true;
}
this._parent.carre.onEnterFrame = function() {
var distanceAParcourir = this.xFinal-this._x;
if (enRoute && Math.abs(distanceAParcourir)<0.5) {
this._x = this.xFinal;
enRoute = false;
delete this.onEnterFrame;
} else if (enRoute) {
this._x += (distanceAParcourir/10);
}
};
};

Voilà. Ça empèche l'utilisateur de relancer le déplacement avant l'arrêt complet du rectangle.
@+ !

À tout problème réside une solution. Si il n'y a pas de solution, c'est qu'il y a un problème.
0
nuggette Messages postés 5 Date d'inscription mercredi 16 février 2005 Statut Membre Dernière intervention 19 septembre 2005
17 févr. 2005 à 21:42
Coucou !!





Merci pour ton code ! Cependant, je ne veux pas avoir a attendre que le carre d'arrete pour pouvoir le relancer.
J'ai bossé dessus avec une copine et on a reussi a trouver la solution.
Je te mets le code ici des fois que ca t'interesse. Il est un peu en foutouard mais il marche ;)
Et encore merci a toi !

++

var DEPLACEMENT:Number = 50 ;
var nombre_clics:Number = 0;


this.droite.DEPLACEMENT = DEPLACEMENT ;
this.gauche.DEPLACEMENT = - DEPLACEMENT ;


var distanceAParcourir;
var x_depart;
var premier_clic = true;
var dernier_clic;


this.gauche.onRelease this.droite.onRelease function ()
{
if(dernier_clic != this._name){
this._x = this.xFinal ;
nombre_clics = 0;
premier_clic = true;
}
dernier_clic = this._name;
var carre_mc = this._parent.carre ;
if(premier_clic){
x_depart = carre_mc._x ;
premier_clic = false;
}
nombre_clics ++;
trace(nombre_clics);
distanceAParcourir = nombre_clics * this.DEPLACEMENT;
trace(distanceAParcourir);
carre_mc.xFinal = distanceAParcourir + x_depart;
this._parent.carre.onEnterFrame = function ()
{
var distanceRestante = carre_mc.xFinal -carre_mc._x;
if (Math.abs(distanceRestante) < 0.5)
{
this._x = this.xFinal ;
nombre_clics = 0;
premier_clic = true;
delete this.onEnterFrame;
}
else
{
this._x += (distanceRestante / 10);
}
}
}

Nuggette :)
0

Vous n’avez pas trouvé la réponse que vous recherchez ?

Posez votre question
WhiteMagus Messages postés 764 Date d'inscription lundi 21 juin 2004 Statut Membre Dernière intervention 5 février 2010
17 févr. 2005 à 22:47
Ah ouaip en effet, il est pas super optimisé. Tu t'es parfois compliqué la vie. Mais tant que ça marche, c'est un bon code.

@+ !

À tout problème réside une solution. Si il n'y a pas de solution, c'est qu'il y a un problème.
0
Rejoignez-nous