Forums Développement Multimédia

Aller au contenu

Bouton pour valider un glisser déposer

PAO Flash

9 réponses à ce sujet

#1 Desperate_Jessi

    Ceinture Blanche

  • Members
  • Pip
  • 12 messages

Posté 29 November 2012 - 16:46 PM

Bonjour,

J'ai créer un petit test où il s'agit de mettre à la bonne place des étiquettes.
L'ennui c'est que je ne sait pas comment faire pour mettre un bouton qui valide oupas l'emplacement de ces étiquettes.
Ci-joint le test en question.

Merci de vos réponses futures.

Jessica

Fichier(s) joint(s)



#2 Monsieur Spi

  • Community Manager
  • PipPipPipPipPipPipPipPip
  • 7012 messages

Posté 29 November 2012 - 23:17 PM

Bonsoir,

1 - il vaudrait mieux utiliser AS3 et non AS2
2 - mettre du code dans les clips est une mauvaise idée (du moins tant qu'on est pas familiarisé avec la POO)
3 - tu devrais utiliser des tableaux pour stocker tes objets

La résolution de ton problème passerai à mon avis par quelque chose du genre :

Je crée tous mes objets, je les insère dans un tableau de stockage (A) et je les place
Je crée un tableau de positions ( B ), une position (un point) par objet, où chaque index correspond à un objet traité
Lorsque je cliques sur un bouton "valider" je vérifie que tous les objets de mon tableau A sont à la position définie dans le tableau B

Autre solution possible, avec ta méthode, c'est à dire du code dans les clips.
A la création de chaque clip, je colle deux variables de référence, correspondant à la position que doit avoir le clip au final.
Quand je pose le clip à un endroit, je vérifie si la position correspond aux variables de position de référence.
Si c'est le cas j'utilise une troisième variable booléenne © qui indique que le clip est au bon endroit.
Lorsque je clique sur le bouton "valider", je regarde la variable C de chaque clip, si toutes renvoient "true" c'est que tous les clips sont bien placés.

Troisième solution possible, avec des hitTests.
Je pose un clip à la position définitive de chaque clip à déplacer, et je leur donne un nom.
Lorsque je cliques sur le bouton "valider" je regarde pour chaque clip qu'il est en contact (hitTest) avec son clip de référence.

#3 Desperate_Jessi

    Ceinture Blanche

  • Members
  • Pip
  • 12 messages

Posté 30 November 2012 - 12:15 PM

Merci pour ta réponse je vais tenter de faire l'une de tes propositions (voir peut-être plusieurs) et je reviens vers vous si j'ai un soucis.

#4 Desperate_Jessi

    Ceinture Blanche

  • Members
  • Pip
  • 12 messages

Posté 30 November 2012 - 15:54 PM

J'ai sohaitais testé la solution 3 avec le hitTest:
- j'ai créé un bouton
- j'ai nommé un de mes clips d'arrivé
- j'ai aussi crée une zone de texte vide pour afficher bravo
- au bouton j'ai mis le code suivant :
on (release) {
if(zone1.hitTest(Coordonées)){
rep1 = ("bravo");
}
}
Tout ça aprés avoir plusieurs explication sur le sujet mais ça ne fonctionne pas.
Peut-être ai-je mal compris.
Merci de m'expliquer ce qui ne fonctionne pas et désolé si mes questions vous semblent depourvus d'interet.

#5 Desperate_Jessi

    Ceinture Blanche

  • Members
  • Pip
  • 12 messages

Posté 30 November 2012 - 16:24 PM

En fait j'ai trouvé d'où était le problème. Il s'agissait d'une faute d'écriture de ma part. :oops:
Par contre que dois-je mettre pour que les différents hitTest bon ou mauvais aboutissent à une même conséquence??

#6 Monsieur Spi

  • Community Manager
  • PipPipPipPipPipPipPipPip
  • 7012 messages

Posté 30 November 2012 - 17:51 PM

Citation

pour que les différents hitTest bon ou mauvais aboutissent à une même conséquence

Je ne comprend pas la finalité de ce que tu cherches à faire.
Peux tu donner plus de précisions ?

#7 ALLFORMATION

    Ceinture Blanche

  • Members
  • Pip
  • 8 messages

Posté 03 December 2012 - 10:02 AM

Slt
Je souhaite que chaque hitTest amène à un résultat dans dans une zone texte puis-je faire comme cela :

on (release) {
if(z1.hitTest(1))
rep1 = ("a");
if(z2.hitTest(2))
rep2 = ("a");

et ensuite je peut ajouter un else à chacun ou pas?

#8 Desperate_Jessi

    Ceinture Blanche

  • Members
  • Pip
  • 12 messages

Posté 05 December 2012 - 14:26 PM

En fait je souhaite que chacun de mes HitTest vérifier s'ils sont bons alors apparait dans une zone texte "bravo".

#9 Monsieur Spi

  • Community Manager
  • PipPipPipPipPipPipPipPip
  • 7012 messages

Posté 05 December 2012 - 20:10 PM

Salut,

Qui es-tu en fin de compte ?
Desperate_Jessi ou ALLFORMATION ?
Pourquoi deux pseudos pour la même personne ?

Une solution pour faire ce que tu veux, crade mais bon ça passe :

Sur la première frame du scénario principale (root) tu met ce code :

var p1:Boolean = false;
var p2:Boolean = false;
var p3:Boolean = false;
var p4:Boolean = false;
var p5:Boolean = false;
var p6:Boolean = false;
var p7:Boolean = false;


onEnterFrame = function(){
        if(p1 && p2 && p3 && p4 && p5 && p6 && p7){
                trace("bravo");
        }
}
Puis dans chacun des clips, si il est placé au bon endroit tu place :

(pour le clip 1) : _root.p1 = true;
(pour le clip 2) : _root.p2 = true;
(pour le clip 3) : _root.p3 = true;
(pour le clip 4) : _root.p4 = true;
(pour le clip 5) : _root.p5 = true;
(pour le clip 6) : _root.p6 = true;
(pour le clip 7) : _root.p7 = true;

Quand toutes le variables seront définies comme "true", le code situé à la racine affichera "bravo" dans la fenêtre de sortie de Flash, à toi de bidouiller pour obtenir ce que tu souhaite.

#10 ALLFORMATION

    Ceinture Blanche

  • Members
  • Pip
  • 8 messages

Posté 06 December 2012 - 10:04 AM

en fait desperate_jessi c'est mon pseudo perso et ALLFORMATION celui de mon entreprise alors des fois je mélange désolé.
Merci pour ta réponse je vais tester ça.



1 utilisateur(s) li(sen)t ce sujet

0 membre(s), 1 invité(s), 0 utilisateur(s) anonyme(s)