Creare un Quiz in Flash

- Letture: 3.250

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 Partner & Chief Innovation Officer 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