Petit problème de logique...

LuckyCorto Messages postés 10 Date d'inscription vendredi 22 octobre 2004 Statut Membre Dernière intervention 13 février 2005 - 13 févr. 2005 à 15:38
LuckyCorto Messages postés 10 Date d'inscription vendredi 22 octobre 2004 Statut Membre Dernière intervention 13 février 2005 - 24 févr. 2005 à 15:39
Bonjour a tous,


G besoin de cerveaux disponibles pour résoudre un probleme de logique.
(le mien n'étant pas optimisé pour ce genre de défit, puisque plus adapté au problèmes d'ordre artistiques...)


S'il vous plait, aidez moi a pondre un script sachant gérer ceci:

J'ai 4 objets qui viennent se placer tour à tour à une position donnée lorsqu'on clique dessus.
J'appelle mes objet A, B, C, D, les différentes positions pos1, pos2, pos3, pos4,


1.Lorsque je clique sur A il vient se placer sur pos1.
2.Quand je clique sur B (après avoir cliqué sur A) il prend la place de A (sur pos1) et A vient se placer sur pos2
3.si je clique sur C (apres avoir cliqué A & B) : C est sur pos1, B sur pos2 et A sur pos3
4.ainsi de suite: Si je clique sur D (aprés les 3 autres) D= pos1 C=pos2 B=pos3 et A= pos4


Tout cela doit fonctionner indépendament de l'ordre dans lequel les objets sont cliqués.


Ainsi, on peu dire aussi:
pos1: est la position du dernier objet cliqué
pos2: la position de l'avant dernier objet cliqué
pos3: la position de l'avant- avant- dernier objet cliqué
Pos4 : etc...


Le processus doit pouvoir fonctionner en boucle: c.a.d si je (re)clique sur un objet un 5eme fois, celui-ci reprend la position 1,
et les autres se re-décalent d'un rang...


LuckyCorto.txt Le script suivantne correspond pas a ce que je veux; puisque il fait ceci:


1.je clique A: A est sur pos1 (jusqu'ici tout va bien...)
2.puis je clique sur B: B vient sur pos2 et A reste sur pos1
3.puis clique sur C: C =pos3, B reste sur pos2, A reste sur pos1
4. etc...


Grand merci d'avance à ceux qui voudront se pencher sur mon probleme...


LuckyCorto

6 réponses

LuckyCorto Messages postés 10 Date d'inscription vendredi 22 octobre 2004 Statut Membre Dernière intervention 13 février 2005
13 févr. 2005 à 15:41
Pour voir mon script cliquer LuckyCorto.txt ICI
0
WhiteMagus Messages postés 764 Date d'inscription lundi 21 juin 2004 Statut Membre Dernière intervention 5 février 2010
13 févr. 2005 à 16:08
Salut.
Je te conseille d'aller voir dans les exemple de Flash MX :
[file:/C:\Program Files\Macromedia\Flash MX\Samples\FLA\ C:\Program Files\Macromedia\Flash MX\Samples\FLA\
]un fichier appelé Movement-pointer_or_click.fla.
C'est très intéressant. Il est aussi disponible sur le site macromedia.fr normalement.
@+ !

À 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
LuckyCorto Messages postés 10 Date d'inscription vendredi 22 octobre 2004 Statut Membre Dernière intervention 13 février 2005
13 févr. 2005 à 16:35
Elle est sympa ta coccinelle, WhiteMagus, mais franchement je vois pas du tout le rapport avec mon probleme...

Si tu peux être plus précis... Me donner une piste...
0
WhiteMagus Messages postés 764 Date d'inscription lundi 21 juin 2004 Statut Membre Dernière intervention 5 février 2010
13 févr. 2005 à 18:06
C'est un moteur pour un déplacement dynamaique d'un point à un autre. Et je pense qu'un script fait par Macromedia peut servir de référence.
@+ !

À 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

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

Posez votre question
fohaf Messages postés 60 Date d'inscription vendredi 14 novembre 2003 Statut Membre Dernière intervention 6 septembre 2012 2
14 févr. 2005 à 13:42
Salut, voilà une solution, je ne sais pas si c'est la plus simple (ni la plus propre...) mais ça fonctionne:
J'utilise un tableau qu je définis en début d'anim:
tableau=new Array();
tableau[0]=0;
tableau[1]=0;
tableau[2]=0;
tableau[3]=0;

Ensuite j'utilise deux fonctions:
la première trie le tableau afin qu'il représente l'ordre des objets:

function tri(nombre){
alpha=-1;
for(i=0;i<=3;i++){
if(tableau[i]==nombre){
alpha=i;
}
}
if(alpha==-1){
tableau.unshift(nombre);
}
if(alpha!=-1){
tableau2=tableau.slice(0,alpha+1);
tableau.splice(0,alpha+1);
popped=tableau2.pop();
tableau2.unshift(nombre);
tableau=tableau2.concat(tableau);
}
}

la deuxième fonction sert à l'afichage:
function dessine(){
if(tableau[0]!=0){
_root["cadre"+tableau[0]]._x=pos1x;
_root["cadre"+tableau[0]]._y=pos1y;
}
if(tableau[1]!=0){
_root["cadre"+tableau[1]]._x=pos2x;
_root["cadre"+tableau[1]]._y=pos2y;

}
if(tableau[2]!=0){
_root["cadre"+tableau[2]]._x=pos3x;
_root["cadre"+tableau[2]]._y=pos3y;
}
if(tableau[3]!=0){
_root["cadre"+tableau[3]]._x=pos4x;
_root["cadre"+tableau[3]]._y=pos4y;
}
}

ensuite, pour chacun de tes objet tu associes les fonctions:
pour l'objetA:
on (release) {
_root.tri(1);
_root.dessine();
}
pour l'objetB:
on (release) {
_root.tri(2);
_root.dessine();
}
et ainsi de suite.
je pourrais t'envoyer une source si t'as besoin.
0
LuckyCorto Messages postés 10 Date d'inscription vendredi 22 octobre 2004 Statut Membre Dernière intervention 13 février 2005
24 févr. 2005 à 15:39
Grand merci à toi de t'être penché sur mon problème...
J'ai tellement galéré dessus que j'ai décider de m'en passer (pour l'instant).
Je vais quand meme étudier ton script qui m'a lair tres intéréssant...
N'hésite pas à m'envoyer la source sur [mailto:LuckyCorto@hotmail.com LuckyCorto@hotmail.com].

Encore merci...

A+.
0
Rejoignez-nous