Hola a todos.
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:
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--;
}
};
Pues nada, espero haberme explicado bien. A ver si alguien sabe algo al respecto.