Creare un Quiz in Flash

- Letture: 3.357

Oggi vedremo come creare un quiz con il componente radioButton di Flash.

Le nostre domande si svlogeranno tutte su determinati frame, in queso esempio ci saranno 4 domande, quindi 4 frame + 1, per avere un risultato con il conteggio di domande giuste e domande sbagliate.

Se non inseriremo una risposta verrà visualizzato un messaggio e non sarà possibile procedere oltre.

Per iniziare inseriamo sullo stage le risposte, tramite il componente radioButton, in questo caso per semplicità potremo rispondere solo SI o NO.

Inizializziamo le variabili giuste e sbaglaite a zero

_root.giuste = 0;
_root.sbagliate = 0;

Impostiamo il nome istanza, delle option, rispettivamente si e no, e cosa molto importante assegnamo il groupName uguale per tutte e due le prime option. Serve a indicare che le dimande appartengono allo stesso gruppo.

quiz.png

Sul pulsante andiamo a verificare se è stata inserita una risposta, e a seconda della domanda incrementeremo le risposte giuste o quelle sbagliate:

on (release) {
if ((si.value == false) && (no.value == false)) {
// se non ce nessuna risp
errore.play();
//errore
} else {
if (si.value) {
// se è SI
_root.sbagliate = _root.sbagliate+1;
// incremento le risposte sbagliaate
play();
// vado avanti
} else {
_root.giuste = _root.giuste+1;
// incremento le risposte giuste
play();
// vado avanti
}
}
}

A questo punto per realizzare altre domande, ci basterà copiare i medesimi radioButton, attenzione cambiando il groupName, che in questo caso diventerà radioGroup2 e cosi via.

Per quanto riguarda la pagina dei risultati, dovremo inserire due campi di testo dinamici, in questo caso di nome istanza giuste_txt e sbagliate_txt e inserire il seguente codice:

_root.giuste_txt.text = _root.giuste;
// scrivo nel campo il tot giuste
_root.sbagliate_txt.text = _root.sbagliate;
// scrivo nel campo il tot sbagliate

NB: In caso le vostre risposte fossero più di una, dovrete sempre eseguire una verifica sul value delle stesse, ovvero del loro valore. Se è true, vuol dire che è stata premuta, altrimenti sarà false.

Stratega, Docente, Speaker con più di 12 anni di esperienza in strategie creative multicanale. Oggi sono Managing Partner di ThinkingHat, Innovation Studio specializzato in tecnologie emergenti per aziende e brand audaci.

21 Commenti

  1. sei un grandeeeeeeeeeeeeeeeeee;-)!!!!! e un tutorial su come realizzare una mappa che indichi le sezioni visitate ??? manca ;-) e farebbe proprio al caso mio!!!!!

  2. Pingback: sastgroup.com

  3. .: DoC :.

    Ciao Julius ti rompo le scatole anche qui, ma vorrei sapere se fosse possibile creare ( una volta terminato il quiz) un reinderizzamento a seconda delle domande risposte correttamente. es risposto a 10 su 10 va ad un frame, risposto a 6 su 10 ad un altro frame etc..

    Grazie mille
    Ciao ciao

  4. .: DoC :.

    emmm :( sono proprio niubbo … riusciresti a postarmi un esempio? te ne sarei molto grato!

    Ciao ciao

  5. Nell’ultimo frame trovi

    stop();
    _root.giuste_txt.text = _root.giuste;
    // scrivo nel campo il tot giuste
    _root.sbagliate_txt.text = _root.sbagliate;
    // scrivo nel campo il tot sbagliate

    quel codice serve a totalizzare i punteggi ma se vuoi che se sono state confermate 6 domande su 10 inserisci

    if(_root.giuste>=6){
    esegui un azione
    }else{
    altrimenti un'altra
    }

  6. .: DoC :.

    PERFETTO c’è l’ho fatta con i bottoni “radio” e funziona tutto alla grande! ora mi chiedevo è possibile sostituire i bottoni radio con dei classici pulsanti inventati da me? se si come?

    Grazie mille

  7. .: DoC :.

    HE he ( mi sa che mi sto incasinando la vita per niente ) cmq ora mi sto muovendo in questo modo ( ho fatto una prova rispettivamente: in caso di 3 risp. esatte vai al al frame x, in caso di 2 risp. esatte vai al frame xx, in caso di 1 risp. vai al frame xxx) e questo è quanto ho fatto ( ps non metterti a ridere pls ha ha ah :) ) :
    if(_root.giuste>=3){
    gotoAndPlay(5);
    }else{
    if(_root.giuste>=2){
    gotoAndPlay(6);
    }
    }else{
    if(_root.giuste>=1){
    gotoAndPlay(7);
    }
    }
    stop();

    ma non va mi da continuamente un errore ( …riga7 —> Rilevato ‘else’ senza corrispondente ‘if’—> }else{ )

    In poche parole quello che voglio provare a fare è: In caso di 10/10 risposte esatte ( vai al frame x ) , in caso di 8>9 risposte esatte ( vai al frame xx), in caso di 5>7 risposte esatte ( vai al frame xxx)

    non so proprio come scrivere questa parte :( !

    :) Grazie MIlle :)

  8. .: DoC :.

    RISOLTO! :) :) :) con pazienza c’è l’ho fatta ora devo provare a far caricare le domande all’interno di singoli swf che a loro volta vengono caricati in un filmato madre ( _root) bha… chissà che casino ne fuoriesce hahaha

    Ciao ciao

  9. .: DoC :.

    unico problema rimasto è esattamente questo: devo eliminare i radio button e sostituirli con dei semplici bottoni, ma non riesco ad impostare il codice come faccio?

    Grazie mille

  10. .: DoC :.

    uff allora mi arrendo … è una giornata che ci provo senza risultati. va bè grazie mille lo stesso.

    PS continua così che sei un GRANDE :)

  11. .: DoC :.

    EVVAI! smontando il codice all’interno del bottone avanti sono riuscito a creare i bottoni che mi servivano ed eliminare i radio Button! :P

    CIAO CIAO

  12. Ciao julius,
    volevo chiederti se potevi spiegarmi esattamente la parte di codice in cui hai scritto errore.play() perchè no nsu come funzioni o come farla funzionare.
    grazie mille

  13. ledyoung

    Scusami ma come faccio a far rispondere in Maiuscolo o Minuscolo a mia discrezione???

  14. scusami se vorrei creare un quiz con più risposte cm devo fare? io ho provato ma è un casino ti prego potresti aiutarmi

  15. take_it_easy

    Ciao, prima di tutto tanto di cappello per il blog, secondo di tutto volevo chiederti se è possibile inviare i risultati del quiz a una mail e se si come potrei fare?
    Grazie anticipatamente, ciao.

  16. ciao julius, io ho un problema… sto lavorando con actionscript 2 e ho impostato lo script per navigare sopra un’immagine solo che appena inserisco un checkbox o un radiobotton non va la navigazione dell’immagine il codice usato per navigare la mappa è il seguente:
    on (keyPress “”) {
    if (_root.immagine._y<+2000) {
    setProperty(_root.immagine, _y, _root.immagine._y+10);}
    }
    on (keyPress "”) {
    if (_root.immagine._y>-2000) {
    setProperty(_root.immagine, _y, _root.immagine._y-10);}
    }
    on (keyPress “”) {
    if (_root.immagine._x<+2000) {
    setProperty(_root.immagine, _x, _root.immagine._x+10);}
    }
    on (keyPress "”) {
    if (_root.immagine._x>-2000) {
    setProperty(_root.immagine, _x, _root.immagine._x-10);}
    }

    non riesco e capire per quale motivo si blocca questo script con l’inserimento dei componenti.

Commenti