Ver Mensaje Individual
  #1 (permalink)  
Antiguo 06/09/2010, 09:20
arch979
 
Fecha de Ingreso: octubre-2008
Mensajes: 18
Antigüedad: 16 años, 1 mes
Puntos: 0
Problema con contador

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.