Estoy haciendo un test de preguntas en flash. El caso es que tengo un contador de respuestas correctas e incorrectas. El contador cuenta por respuesta correcta clicada. Es decir que si una pregunta tiene 3 respuestas correctas, el contador puede sumar hasta 3. El problema es que mientras te estás pensando la respuesta y vas clicando en las diferentes respuestas, el contador ya va sumando a razón de clics con lo que el usuario ya ve antes de acceder a la pantalla de resultados si está respondiendo bien o no. Lo correcto sería que el contador reflejara las respuestas correctas e incorrectas de la pregunta anterior y que cuando accediera a la pantalla de resultados actualizara los marcadores y así sucesivamente.
Adjunto el código del frame donde están las preguntas y respuestas. Comentar que "resultados" corresponde al nombre de instancia que tiene el botón de acceso a los resultados y "tick1,2,etc..." a la casilla de activación de cada respuesta.
Código:
Pues nada, espero haberme explicado bien. A ver si alguien sabe algo al respecto. stop(); var userAnswer = new Array(); var correctAnswers = [1,2,4]; numQuestions = correctAnswers.length; resultados.onRelease = function() { gradeUser(); }; function gradeUser() { if (userAnswer.length == correctAnswers.length) { //trace("mateix numero seleccions"); var totalCorrect = 0; for (i = 0; i < correctAnswers.length; i++) { //trace("comprobar numero:" + userAnswer[i]); for (j = 0; j < correctAnswers.length; j++) { //trace(correctAnswers[j]); if( userAnswer[i]==correctAnswers[j]){ totalCorrect++; } } } if (totalCorrect == correctAnswers.length) { //trace("correcte"); gotoAndStop("p2_si"); } else { //trace("incorrecte"); gotoAndStop("p2_no"); } } else { //trace("numero diferent seleccions"); gotoAndStop("p2_no"); } } function answer(choice) { userAnswer.push(choice); } tick1.onRelease = function(choice) { if (tick1.tickBox._currentFrame == 2) { answer(1); numOfQuestionsAnsweredCorrectly++; } else if (tick1.tickBox._currentFrame == 1) { userAnswer.pop(); numOfQuestionsAnsweredCorrectly--; } }; tick2.onRelease = function(choice) { if (tick2.tickBox._currentFrame == 2) { answer(2); numOfQuestionsAnsweredCorrectly++; } else if (tick2.tickBox._currentFrame == 1) { userAnswer.pop(); numOfQuestionsAnsweredCorrectly--; } }; tick3.onRelease = function(choice) { if (tick3.tickBox._currentFrame == 2) { answer(3); numOfQuestionsAnsweredIncorrectly++; } else if (tick3.tickBox._currentFrame == 1) { userAnswer.pop(); numOfQuestionsAnsweredIncorrectly--; } }; tick4.onRelease = function(choice) { if (tick4.tickBox._currentFrame == 2) { answer(4); numOfQuestionsAnsweredCorrectly++; } else if (tick4.tickBox._currentFrame == 1) { userAnswer.pop(); numOfQuestionsAnsweredCorrectly--; } };