Précédent   Forum des professionnels en informatique > Webmasters - Développement Web > Flash/Flex > Flash > AS1/AS2
AS1/AS2 Questions relatives à la programmation ActionScript 1 et 2 (Cours AS2)
Partagez cette discussion sur d'autres réseaux sociaux : Viadeo Twitter Google Facebook Digg Delicious MySpace Yahoo
Réponse Proposer ce sujet en actualité
 
Outils de la discussion
Publicité
'
Vieux 06/06/2007, 12h16   #1
Nouveau Membre du Club
 
Inscription : janvier 2007
Messages : 180
Détails du profil
Informations forums :
Inscription : janvier 2007
Messages : 180
Points : 34
Points : 34
Par défaut Quizz en flash

Salut,

J'voulais avoir votre avis sur la façon de faire la chose suivante :

Réalisation et mise en ligne d'un p'tit quizz de 5 questions qui doivent, et c'est la pour moi la difficulté, venir de façon aléatoire mais doivent être toutes posées. Genre pour l'internaute A : 12345, l'internaute B 25134, l'internaute C 51342 etc...Vous me suivez ? Comment voyez-vous le truc ? Comment feriez-vous ?

Merci de votre aide

hpl
hpl76 est déconnecté   Envoyer un message privé Réponse avec citation 00
Vieux 07/06/2007, 12h31   #2
Membre Expert
 
Avatar de dom_dev
 
Inscription : février 2006
Messages : 2 067
Détails du profil
Informations forums :
Inscription : février 2006
Messages : 2 067
Points : 2 114
Points : 2 114
bonjour,

c'est plus un problème algorithmique que purement flash.

en premier lieu tu utilises la méthode random pour le tirage aléatoire de tes nombres (extrait de la doc) :
Code :
1
2
3
4
5
6
 
function randRange(min:Number, max:Number):Number {
     var randomNum:Number = Math.floor(Math.random() * (max - min + 1)) + min;
     return randomNum;
}
ma_valeur_aleatoire = randRange(0,4)
ensuite tu crées un tableau contenant tes 5 nombres indice de 0 à 4 donc.
tu executes une première fois la fonction random qui te donne un indice aléatoire, tu va chercher le nombre correspondant que tu retires (et c'est là l'astuce ) du tableau. Tu recommences mais cette fois avec une case en moins dans ton tableau et évidemment la fonction random de 0 à 3 et ainsi de suite jusqu'à la fin du tableau...

voilà, j'adore ce genre de problème !

cordialement,
__________________
Si la ou les réponses obtenues vous ont donné satisfaction n'oublier pas ->
Et ne rajoutez pas de nouvelles questions éternellement dans le même post surtout si vous en n'êtes pas l'auteur
MERCI
dom_dev est déconnecté   Envoyer un message privé Réponse avec citation 00
Vieux 11/06/2007, 10h24   #3
Nouveau Membre du Club
 
Inscription : janvier 2007
Messages : 180
Détails du profil
Informations forums :
Inscription : janvier 2007
Messages : 180
Points : 34
Points : 34
Me voilà de retour,

Citation:
Envoyé par dom_dev
voilà, j'adore ce genre de problème !
J'ai l'impression ^^. Merci pour ce premier élément de réponse.

Je ne vois pas, par contre, comment on peut extraire du tableau la question sachant qu'elle est tirée au hasard. Je m'explique :

Soit les questions 1,2,3,4,5. Pour le random de 0,4 je suis d'accord. Une question est tirée au hasard. On admet que c'est la question 4 qui démarre le quizz. Ensuite il n'y a plus que 4 questions (1,2,3,5) donc on fait un fait random sur les 4 restantes de 0 à 3 mais comment il va savoir lui que la 4 ne doit plus faire parti du random ? Ne risque t-elle pas d'être reproposée (J'ai p'tet zappé un truc, j'chui pas fortiche en algo et AS à vrai dire)

hpl76
hpl76 est déconnecté   Envoyer un message privé Réponse avec citation 00
Vieux 11/06/2007, 10h47   #4
Membre du Club
 
Inscription : mai 2007
Messages : 65
Détails du profil
Informations personnelles :
Localisation : France, Paris (Île de France)

Informations forums :
Inscription : mai 2007
Messages : 65
Points : 66
Points : 66
bonjour,

voir la méthode Array.shift

Goofyt,
goofyt est déconnecté   Envoyer un message privé Réponse avec citation 00
Vieux 11/06/2007, 11h10   #5
Membre Expert
 
Avatar de dom_dev
 
Inscription : février 2006
Messages : 2 067
Détails du profil
Informations forums :
Inscription : février 2006
Messages : 2 067
Points : 2 114
Points : 2 114
bonjour,

Citation:
Envoyé par hpl76
mais comment il va savoir lui que la 4 ne doit plus faire parti du random
justement parce que tu l'a enlevé du tableau
le tableau contient par exemple les 5 questions. Les indices du tableau vont de 0 à 4. monTableau[0] renvoi la question 1 etc.
je fais un premier "randomRange" de 0 à 4 qui me renvoi "3"
je vais chercher : monTableau[3] (qui sera la question 4) mais surtout j'enlève cette question du tableau et je recompose un nouveau tableau qui comporte une question de moins !
[Q1,Q2,Q3,Q5] et cette fois je fais randomRange de un élément de moins c'est a dire de 0 à 3.
imaginons à présent que randomRange me renvoi 2.
je vais chercher monTableau[2] ce sera Q3 et le l'enlève
résultat du nouveau tableau -> [Q1,Q2,Q5]
et je recommence avec un randomRange de 0 à 2
et ainsi de suite...
pour le traitement du tableau regarde l'aide avec "Array" et "splice"

voilà j'espère avoir été assez clair, cordialement
__________________
Si la ou les réponses obtenues vous ont donné satisfaction n'oublier pas ->
Et ne rajoutez pas de nouvelles questions éternellement dans le même post surtout si vous en n'êtes pas l'auteur
MERCI
dom_dev est déconnecté   Envoyer un message privé Réponse avec citation 00
Vieux 11/06/2007, 12h30   #6
Nouveau Membre du Club
 
Inscription : janvier 2007
Messages : 180
Détails du profil
Informations forums :
Inscription : janvier 2007
Messages : 180
Points : 34
Points : 34
Merci pour vos réponses respectives. Entre-temps je me suis lancé sur une autre piste. Au final, je vais essayer de faire 2 versions de ce quizz, l'une avec "ma" méthode et la seconde avec la votre.

Voici ce que j'ai trouvé/fait :

//sur l'image 1 de mon anim
montab = [2,3,4,5,6];//mes images clefs pour les questions 2 = question 1...
montab.sort(hasard = function(){return random(2)});//je comprends sans comprendre.
var i = 0;//j'ai initialisé l'indice à 0
gotoAndStop(montab[i]);//je vais à la question correspondante à l'indice 0

Pour le test et pour parcourir mon array étape par étape j'ai mis sur chaque frame un bouton avec le code suivant :
on (release) {
gotoAndStop(montab[i+1]);
}

Ceci fonctionne mais qu'une seule fois :/ . Pourquoi donc ?

Exemple : 4,6,2,3,5 sont renvoyés. Mon anim se place en frame 4 (question3). Je clique sur le bouton temporaire qui m'emmene à la frame 6 (question 5). Jusque là tout va bien. Si je clique sur le bouton temporaire de cette question plus rien ne se passe

Merci de votre aide. Je suis preneur de tous vos commentaires.
hpl76 est déconnecté   Envoyer un message privé Réponse avec citation 00
Vieux 11/06/2007, 12h49   #7
Nouveau Membre du Club
 
Inscription : janvier 2007
Messages : 180
Détails du profil
Informations forums :
Inscription : janvier 2007
Messages : 180
Points : 34
Points : 34
En mettant à la place ce code sur le bouton, ca marche maintenant :

on (release) {
i++;
gotoAndStop(montab[i]);
}

Bizarre, non ? J'attends vos avis

hpl76
hpl76 est déconnecté   Envoyer un message privé Réponse avec citation 00
Vieux 15/06/2007, 11h37   #8
Nouveau Membre du Club
 
Inscription : janvier 2007
Messages : 180
Détails du profil
Informations forums :
Inscription : janvier 2007
Messages : 180
Points : 34
Points : 34
Bonjour,

Je reviens vers vous, car j'ai un p'tit souci incompréhensible. Si je teste mon anim depuis flash en la publiant (ctrl+entree) ca marche nickel. Mon quizz est proposé, les questions sont toutes posées et de façon aléatoire. Par contre,
quand je mets mon anim en ligne dans ma page php il arrive assez souvent qu'il y ait un bug dès l'initialisation de l'anim (1ère question) comme ci le tableau n'était pas défini. La question s'affiche mais pas les réponses, ni le bouton pour valider et le bug affiche toujours la même question. Je ne pense pas que ce soit la question qui soit incriminée, car le principe est le même pour toutes les questions. Je ne vois pas et ne comprends pas pourquoi... car quand ca marche la série s'enchaine sans problèmes.

Voici le code sur la 1ère frame qui gère le tout :

Code :
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
stop();
montab = [2,3,4,5,6,7,8,9,10,11,12,13,14,15,16,17,18,19,20,21,22,23,24,25,26,27,28,29,30,31];//mes images clefs pour les questions
montab.sort(hasard = function(){return random(2)});
var maxtab = montab.length;
var i = 0;
var score = 0;
var nb = 1;
gotoAndStop(montab[i]);
 
function final(){
		if (montab.length == maxtab) { 
			gotoAndPlay (32);
			}
		i++;
		nb++;
	gotoAndStop(montab[i]);
}
HELP ME PLEASE

hpl76
hpl76 est déconnecté   Envoyer un message privé Réponse avec citation 00
Vieux 18/06/2007, 10h35   #9
Nouveau Membre du Club
 
Inscription : janvier 2007
Messages : 180
Détails du profil
Informations forums :
Inscription : janvier 2007
Messages : 180
Points : 34
Points : 34
Bonjour le monde,

Je vous sollicite, en vain...Quelqu'un pourrait-il s'il lui plait jeter un oeil à la source ci-jointe. Je veux juste rappeler que la publication depuis Flash marche nickel. Mon bug survient quand mon swf est intégré dans une page html, php...Ca marche x fois sur x, ca dépend de son bon vouloir. Si vous avez une soluce je suis preneur car j'ai dans l'idée qu'un script marche ou non et pas de façon aléatoire. Toute remarque est la bienvenue...Le mieux c'est de simuler ce que j'ai fait à savoir de lancer le swf seul puis d'essayer l'anim dans une page html,php ou autre. MERCI !

hpl76

Ps : faites pas gaffe au côté graphique ^^
Fichiers attachés
Type de fichier : fla quizzhome.fla (431,5 Ko, 11 affichages)
Type de fichier : swf quizzhome.swf (23,0 Ko, 10 affichages)
hpl76 est déconnecté   Envoyer un message privé Réponse avec citation 00
Vieux 19/06/2007, 10h27   #10
Nouveau Membre du Club
 
Inscription : janvier 2007
Messages : 180
Détails du profil
Informations forums :
Inscription : janvier 2007
Messages : 180
Points : 34
Points : 34
Hello,

Content de pouvoir vous dire que j'ai trouvé la soluce à mon problème.
Pour faire court, il semblait que la commande gotoAndStop(montab[i]); arrivait trop vite alors que mon tableau était en cours d'initialisation.
C'est pour ca que des fois ca marchait et d'autres fois non.

Merci encore aux différents intervenants de ce topic qui ont planché avec moi sur ce p'tit casse-tête

hpl76
hpl76 est déconnecté   Envoyer un message privé Réponse avec citation 00
Réponse Proposer ce sujet en actualité Cette discussion est résolue.
Outils de la discussion



Fuseau horaire GMT +2. Il est actuellement 19h59.


 
 
 
 
Partenaires

Hébergement Web