STIC Discussion:STIC IV/ex4

De EduTech Wiki
Aller à la navigation Aller à la recherche

Questions sur l'exercice 4 -- Claire Peltier 12 avril 2010 à 18:45 (CEST)

Bonjour, J'ai bien avancé sur les exercices mais je suis coincée sur les points suivants :

  • jeu fromages : l'apprenant doit compter 8 fromages en cliquant dessus. Chaque clic sur un fromage le déplace dans une caisse. Comment faire pour le feedback ? J'ai envisagé plusieurs solutions mais sans savoir vraiment comment les mettre en oeuvre : créer une zone sensible autour de la caisse qui puisse "comptabiliser" le nombre d'éléments qui sont dessus après validation de la fin du jeu, paramétrer le jeu de telle sorte que le nombre de clics sur les fromages puissent être comptabilisés ??? J'ai bien une vague idée qu'il va falloir utiliser les conditions (if..else), mais je ne sais pas comment choisir et paramétrer mes variables au départ.
  • navigation entre clips : j'ai lu que les bonnes pratiques Flash voulaient qu'on utilise des movie clips intégrés dans l'animation principale mais j'ai de la peine à les piloter correctement (surtout le son). J'ai utilisé des boutons play et stop pour stopper et reprendre l'animation. Ca marche bien, sauf le son qui continue à se dérouler. Si je laisse mes animations visibles dans la timeline sans les "encapsuler" tout marche (y compris le son) car j'utilise les étiquettes pour naviguer entre les différentes parties.

Pouvez-vous m'aider ? Je peux aussi me déplacer à Tecfa, ça sera peut-être plus simple... Merci pour votre réponse. Claire

Re: Questions sur l'exercice 4 -- Daniel K. Schneider 12 avril 2010 à 20:23 (CEST)

Pour le comptage: Il faut séparer affichage et la logique de compter.

D'abord il faut décider ce que vous voulez compter:

  • Fromages dans la caise ?
  • Clics en tout ?
  • Mauvais clics ?

Pour chacune faire une variable et la mettre à zéro du début du script qui pilote cette animation:

fromages_dans_caisse = 0;
clics = 0;

Ensuite, à chaque fois qu'un utilisateur fait ou réussi qc. augmenter ces variables.

fonction xxx (ev) {
 clics = clics + 1;
....... reste du code qui gère les clics
 }

Ensuite, il faut effectivement décider quand il faut afficher quoi et comment.

Soit vous affichez dès qu'un utilisateur fait qc. soit à la fin. Dépend de vos réflexions sur le design de l'outil. Pour afficher il suffit de réserver une zone de texte, puis afficher ces nombres. Enfin si l'enfant ne sais pas lire les nombres, faut envisager de jouer un mp3...

Pour le son: On peut l'arrêter avec un peu de ActionScript. Insérer cela tel quel au début d'une fonction qui fait un play de qc.

SoundMixer.stopAll();

Re: Re: Questions sur l'exercice 4 -- Claire Peltier 12 avril 2010 à 23:03 (CEST)

Ok, merci. Je vais tester tout ça. Claire

Re: Re: Questions sur l'exercice 4 -- Claire Peltier 13 avril 2010 à 10:26 (CEST)

Bonjour,

J'ai inséré le code suivant :

var score=0;
cheese1.addEventListener(MouseEvent.CLICK, moveCheese1);
function moveCheese1 (event:MouseEvent) {
score=score+1;
cheese1.x=402.8;
cheese1.y=222.7; }
cheese1.x=23.9;
cheese1.y=104.3;

et ainsi de suite pour tous les fromages. Et ensuite :

validate_btn.addEventListener(MouseEvent.CLICK, validateScore):void;
function validateScore (event:MouseEvent)
if (score==8)
{	 trace("you win");
}
else
{	trace("missed");
}

J'ai un message d'erreur qui me dit :

1078: Label must be a simple identifier.

C'est un peu du chinois pour moi :(

Ce que je veux faire : l'apprenant doit compter 8 fromages. Quand il pense en avoir déplacé ce nombre dans la caisse (par clics, pas par drag and drop), il valide sur un bouton. Selon le nombre qu'il aura cliqué il sera dirigé sur un frame avec du son et une animation (pour l'instant j'ai juste mis "trace" pour tester. Que manque-t-il pour que ça marche ?!?

Re: Re: Re: Questions sur l'exercice 4 -- Daniel K. Schneider 13 avril 2010 à 10:36 (CEST)

A mon avis la définition de la fonction. Sop corps doit absolument se trouver entre { }

function validateScore (event:MouseEvent) {
if (score==8)
{	 trace("you win");
}
else
{	trace("missed");
}

}

Re: Questions sur l'exercice 4 -- Claire Peltier 13 avril 2010 à 11:06 (CEST)

J'ai malheureusement toujours le même message d'erreur :

1078: Label must be a simple identifier.

J'ai déposé le fichier sur ma page travaux : http://tecfaetu.unige.ch/etu-maltt/pixel/ghebali4/stic_4/ex4/ Merci pour votre aide.

Re: Re: Questions sur l'exercice 4 -- Daniel K. Schneider 13 avril 2010 à 14:25 (CEST)

C'est juste 2 erreurs à la fin: une acolade de trop tout à la fin, puis un ":void" qui ne fait pas de sens pour addEventListener. Puis bien entendu il faut définir aussi la fonction validateScore. A mon avis vous avez juste tué la ligne avec "function" ....

validate_btn.addEventListener(MouseEvent.CLICK, validateScore);

function validateScore(ev) {
	if (score==8) {
		trace("you win");
	} else {
		trace("missed");
	}
}

PS: Après faut se décider si vous voulez faire cela dans la main timeline (dans ce cas, faut impérativement un stop(); )

Re: Questions sur l'exercice 4 -- Claire Peltier 13 avril 2010 à 14:47 (CEST)

Merci.

Le problème c'est que maintenant quand je clique sur un fromage, il va dans la caisse mais repart aussi sec. Et puis j'ai beau cliquer sur 8 fromages, le feedback est toujours "missed"...

Désolée...

J'ai modifié le fichier sur http://tecfaetu.unige.ch/etu-maltt/pixel/ghebali4/stic_4/ex4/

Re: Re: Questions sur l'exercice 4 -- Daniel K. Schneider 13 avril 2010 à 17:13 (CEST)

Facile (je l'ai déjà vu dans mon message précédant. Faut absolument arrêter l'animation au départ, sinon cela va continuer dans d'autres frames puis boucler ....

donc insérer:

stop ();

Re: Questions sur l'exercice 4 -- Claire Peltier 13 avril 2010 à 18:10 (CEST)

ça marche !!! Merci beaucoup. Je commençais à désespérer. A force d'avoir le nez dessus, on ne voit plus rien. Je continue mais je risque d'avoir encore besoin de vous par la suite...Bonne soirée.Claire