Comunidad de diseño web y desarrollo en internet online

test flash

Citar            
MensajeEscrito el 08 Mar 2010 09:24 pm
hola quisiera que me ayuden en un test que estoy haciendo, tiene 21 preguntas con 3 opciones c/u (no es un test de verdadero y falso) cargadas desde un xml, hasta ahi todo bien, lo que quisiera hacer es que en el final me salga el porcentaje de elección de cada opción, por ej: tengo las opciones a, b y c, y en el resultado me daria a:12%, b:22% y c: 66%. les agradeceria que me ayuden con la parte de porcentajes.
gracias de antemano
Mariun

Por mariun

8 de clabLevel



 

msie
Citar            
MensajeEscrito el 08 Mar 2010 09:53 pm
correctas * 100 / total

eso retorna el porcentaje de correctas

Por tribak

Claber

2448 de clabLevel

6 tutoriales

Genero:Masculino   Héroes

Fotógrafo o algo

firefox
Citar            
MensajeEscrito el 08 Mar 2010 10:01 pm
gracias por tu respuesta:
Lo que pasa es que no hay correctas e incorrectas, es tipo un test de personalidad con tres posibles respuestas

Por mariun

8 de clabLevel



 

msie
Citar            
MensajeEscrito el 08 Mar 2010 10:07 pm
bueno

valor_de_a * 100 / total_de_respuestas

es lo mismo

Por tribak

Claber

2448 de clabLevel

6 tutoriales

Genero:Masculino   Héroes

Fotógrafo o algo

firefox
Citar            
MensajeEscrito el 09 Mar 2010 01:26 pm
les muestro lo que tengo, aqui cargo el xml


System.useCodepage = true;
xmlXACA = new XML();
xmlXACA.ignoreWhite = true;
xmlXACA.onLoad = function(exito)
{
if(exito)
{
atest = new Array();
preguntas = this.firstChild.childNodes;
for(var i=0;i<preguntas.length;i++)
{
obj = new Object();
obj.pregunta = preguntas[i].attributes.texto;
respuestas = preguntas[i].firstChild.childNodes;

ans = new Array();
for(var j=0;j<respuestas.length;j++)
{
ans.push(respuestas[j].attributes.texto);
}
obj.ans = ans;
atest.push(obj);
}
fillPage(0);
}
else
{
trace("Error, we have problems reading this file.");
}
}
xmlXACA.load("test.xml"); //para pruebas locales.

function fillPage(page)
{
hideElements(true);

obj = atest[page];
t0.text = atest[page].pregunta;
ans = obj.ans;

for(var i=0;i<ans.length;i++)
{
_root["c"+(i+1)]._visible = true;
txt = _root["t"+(i+1)];
txt._visible = true;
txt.text = ans[i];
txt.autoSize = true;
}
unSelectRadios(true);
}


en otra capa tengo



stop();

var respuestaUsuario = new Array();
t._visible = false;
_root.page = 1;
bsig._visible = false;
bsig.onPress = function()
{
_root.gotoAndStop(2);
}
alClicar = new Object();
alClicar.click = function(evento) {

var seleccionUsuario = evento.target.selection.data;
var msg = "";

if(_root.page<atest.length)
{
respuestaUsuario[_root.page-1] = seleccionUsuario;
fillPage(_root.page);
_root.page++;
}
else
{
for(var i=0;i<respuestaUsuario.length;i++)
{
msg += " respuesta "+respuestaUsuario[i]+"\n";
}

trace(msg);

t.text = msg;
nextFrame();
}
};
test.addEventListener("click", alClicar);

function hideElements(valor){
for(var i=1;i<9;i++)
{
this["t"+i]._visible = !valor;
this["c"+i]._visible = !valor;
}
}

function unSelectRadios(valor){
for(var i=1;i<9;i++)
{
this["c"+i].selected = !valor;
}
}



tengo en un frame 3 radio buttons con nombre de instancia c1, c2 y c3 más las cajas de texto dinamicas de la pregunta (t0)y las tres respuestas.(t1,t2,t3)
En el frame siguiente la caja de texto de la respuesta con nombre de instancia t

lo que me hace este ejemplo en la respuesta es ponerme respuesta 1: y la opcion elegida, respuesta2: la opcion elegida
y lo que yo quiero hacer, que no puedo lograrlo, es que me ponga el porcentaje de elección de cada respuesta.

Por mariun

8 de clabLevel



 

msie
Citar            
MensajeEscrito el 09 Mar 2010 03:50 pm
Modifica solo esta función:

Código :

alClicar = new Object();
alClicar.click = function(evento) {
   var seleccionUsuario = evento.target.selection.data;
   var msg = "";
   respuestaUsuario[_root.page-1] = seleccionUsuario;
   if(_root.page<atest.length) {
      fillPage(_root.page);
      _root.page++;
   } else {
      // supongo que en el data de los radioButtons tienes "a", "b", y "c" ó 1,2,3
      opcA = 0;
      opcB = 0;
      opcC = 0;
      for(var i=0;i<respuestaUsuario.length;i++) {
         if (respuestaUsuario[i] == "a") opcA++; // sustituye "a" por el valor del data del primer radioButton
         if (respuestaUsuario[i] == "b") opcB++; // sustituye "b" por el valor del data del segundo radioButton
         if (respuestaUsuario[i] == "c") opcC++; // sustituye "c" por el valor del data del tercer radioButton
         //msg += " respuesta "+respuestaUsuario[i]+"\n";
      }
      PA = opcA * 100 / respuestaUsuario.length; // porcentaje de respuestas A
      PB = opcB * 100 / respuestaUsuario.length; // porcentaje de respuestas B
      PC = opcC * 100 / respuestaUsuario.length; // porcentaje de respuestas C
      trace("Porcentaje de respuestas A: " + PA + " %");
      trace("Porcentaje de respuestas B: " + PB + " %");
      trace("Porcentaje de respuestas C: " + PC + " %");
      t.text = msg;
      nextFrame();
   }
}

Por gabynufe

Claber

446 de clabLevel



 

México, D.F.

firefox

 

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