Comunidad de diseño web y desarrollo en internet online

PUNTUACION TEST

Citar            
MensajeEscrito el 13 Sep 2010 04:46 pm
Hola a todos,
tengo hecho un test de preguntas en flash. El caso es que en un dynamicText recojo el tanto por ciento de aciertos. Lo que me gustaría es que dependiendo del valor del % vayas a un frame o a otro. Es decir, si has sacado menos de 50 % vas a un frame, si has sacado entre 50 y 80 % vas a otro frame y si has sacado mas de 80 % vas a otro frame.

Lo que tengo hecho es lo siguiente:

Código :

userScore=(numOfQuestionsAnsweredCorrectly*100)/(5)

donde "userScore" es el nombre de VAR que lleva este dynamicText.

por otro lado

Código :

boton.onRelease = function() {
         if (userScore._currentFrame <= 50) {
            gotoAndPlay("scores50");
         } else if (userScore._currentFrame >= 51) {
            gotoAndPlay("scores5080");
         }   
      };

donde "boton" es el nombre de instancia del boton que te envía a las diferentes opciones. De todas formas a este código le faltaría decirle que en vez de >=51 sea entre 51 y 80 %, pero no se como decirle. Como tambien faltaría la opción de >80 %.

En fin, a ver si alguien puede echarme una mano.

Por arch979

14 de clabLevel



 

msie8
Citar            
MensajeEscrito el 13 Sep 2010 07:41 pm
¿userScore es un valor entre 0 y 100? Porque usas entonces userScore._currentFrame, como si fuera el frame de una línea de tiempo?

Jorge

Por solisarg

BOFH

13669 de clabLevel

4 tutoriales
5 articulos

Genero:Masculino   Bastard Operators From Hell Premio_Secretos

Argentina

firefox
Citar            
MensajeEscrito el 14 Sep 2010 03:34 am
Yo creo que te falta un valor que es saber elñ total de preguntas por contestar, que equivale al 100% y entonces te hagas una regla de tres

Código PHP :

function testDePreguntas(totalPreguntas:Number, totalAciertos:Number)
{
// dynamicText = % aciertos
// Regla de Tres donde 
//   totalPreguntas = 100 % aciertos posibles
// ...y totalAciertos  = X %
var cPorcentaje:Number = Math.round((totalAciertos * 100)/totalPreguntas);
// ...entonces condicion
// segun % aciertos gotoFrame
// <50%, frame 1
// >50 && <80, frame 2
// >80, frame 3
if (cPorcentaje<50)
gotoAndStop(1);
else if (cPorcentaje>=50 && cPorcentaje<80)
gotoAndStop(2);
else // >=80   obvio! XD
gotoAndStop(2);
}

Por comicSans

Claber

151 de clabLevel



 

firefox
Citar            
MensajeEscrito el 14 Sep 2010 03:35 am
Yo creo que te falta un valor que es saber elñ total de preguntas por contestar, que equivale al 100% y entonces te hagas una regla de tres

Código PHP :

function testDePreguntas(totalPreguntas:Number, totalAciertos:Number)
{
// dynamicText = % aciertos
// Regla de Tres donde 
//   totalPreguntas = 100 % aciertos posibles
// ...y totalAciertos  = X %
var cPorcentaje:Number = Math.round((totalAciertos * 100)/totalPreguntas);
// ...entonces condicion
// segun % aciertos gotoFrame
// <50%, frame 1
// >50 && <80, frame 2
// >80, frame 3
if (cPorcentaje<50)
gotoAndStop(1);
else if (cPorcentaje>=50 && cPorcentaje<80)
gotoAndStop(2);
else // >=80   obvio! XD
gotoAndStop(3);
}

Por comicSans

Claber

151 de clabLevel



 

firefox
Citar            
MensajeEscrito el 14 Sep 2010 09:19 am
primero de todo gracias por responder...te cuento....
Adapté el código que me comentaste a mi proyecto quedando así:

Código :

boton.onRelease = function() {
   puntuacion();
};


function puntuacion(numOfQuestionsAnsweredCorrectly:Number) {
   
   var userScore:Number = (numOfQuestionsAnsweredCorrectly*100)/(5); 
   
   if (userScore<50) 
   gotoAndStop("scores50"); 
   else if (userScore>=50 && userScore<80) 
   gotoAndStop("scores5080"); 
   else (userScore>=80)  
   gotoAndStop("scores80"); 
   }        


donde "boton" es el nombre de instancia del boton que te lleva a las distintas opciones. "numOfQuestionsCorrectly" es el nombre del campo VAR de un dynamicText que ya declaré al principo del test como

Código :

 var numOfQuestionsAnsweredCorrectly=0;
el cual va sumando a medida que aciertas. El "(5)" es el número de respuestas correctas de todo el test y "userScore" es el nombre del campo VAR del dynamicText que recoge el % de aciertos.

Pero nada...sea cual sea el % de aciertos siempre va a parar al frame "scores80". No tiene mucho sentido. ¿En qué me equivoco?

Por arch979

14 de clabLevel



 

msie8
Citar            
MensajeEscrito el 14 Sep 2010 01:29 pm
Lo primero: traza el valor a ver que está dando:

trace("userScore: "+userScore)

Jorge

Por solisarg

BOFH

13669 de clabLevel

4 tutoriales
5 articulos

Genero:Masculino   Bastard Operators From Hell Premio_Secretos

Argentina

firefox
Citar            
MensajeEscrito el 14 Sep 2010 02:32 pm
hola arch, es un buen habito que uses trace para hacer pruebas de que pasa, como te recomienda solisarg :)

..te das cuenta de algun error

mira creo que me falto terminar las condiciones con else if, y no solamente else, una disculpa, aqui tienes una comprobacion de la funcion con algunos trace, espero te sirva

Código PHP :

function puntuacion(numOfQuestionsAnsweredCorrectly:Number) {
   // trace("esto vale el parametro enviado = "+numOfQuestionsAnsweredCorrectly);
   var userScore:Number = Number(numOfQuestionsAnsweredCorrectly*100)/5; 
   //  trace("esto resulta userScore = "+userScore);
   var goto:String;
   
   if (userScore<50) 
   goto = "scores50"; // gotoAndStop("scores50"); 
   else if (userScore>=50 && userScore<80) 
   goto = "scores5080"; // gotoAndStop("scores5080"); 
   else if(userScore>=80)  
   goto = "scores80"; // gotoAndStop("scores80"); 
    
   return goto;
}

trace('gotoAndStop(' + puntuacion(0) + ')');
trace('gotoAndStop(' + puntuacion(1) + ')');
trace('gotoAndStop(' + puntuacion(2) + ')');
trace('gotoAndStop(' + puntuacion(3) + ')');
trace('gotoAndStop(' + puntuacion(4) + ')');
trace('gotoAndStop(' + puntuacion(5) + ')');

Por comicSans

Claber

151 de clabLevel



 

firefox

 

Cristalab BabyBlue v4 + V4 © 2011 Cristalab
Powered by ClabEngines v4, HTML5, love and ponies.