Comunidad de diseño web y desarrollo en internet online

busco una nueva funcion que haga lo mismo que switch

Citar            
MensajeEscrito el 20 Ago 2008 05:05 am
:? hola a todos: tengo este problema sigo con mis cuestionarios, pero ahora cada vez son mas complicados y las funciones que he estado usando ya no son las adecuadas por el tipo de respuesta que necesito poner.. asi que ahi les va mi pregunta ojala y alguien sepa por donde debo ir..
mi cuestionario es sobre poner fracciones asi que esto es lo que tengo...
he creado 4 introduccion de texto (uni, uni1, uni2, uni3) aqui yo nada mas les cambio el tamaño para que sevea que son el numero entero (uni) nominador (uni1) denominador (uni2) y entero nuevamente (uni3)al final pongo un boton para que revise si la respuesta es correcta //bueno eso fue lo que empece a hacer, pero no es practico y les voy a decir porque//
lo que queria hacer es que cuando yo pongo el primer uni...//con valor 2.. presione la tecla enter y si es correcto se vaya directo a uni1 y sume en el score, asi que para comenzar puse este codigo

Código :

on (keyPress "<Enter>") {
   if  (uni == 2);
   _root.score4 += 1
   _root.trie4 += 1
selection.setFocus ("uni1);
   }else if ("uni=="",");
      _root.error4 += 1;
      _root.trie4 += 1;
delete (uni)
}

y se supone que asi seguiria con el resto de las respuestas, pero por alguna razon que no comprendo mi as no funciona, asi que me puse a investigar si es que hay una manera mas sencilla de poner el codigo pero no encuentro nada porque necesito que as vea que todas las respuestas son correctas y cuando una no lo sea no cambie hacia el otro cuadro de texto, sino que se quede en el que esta mal para que pueda corregirlo el usuario :cry:
alguien tiene una idea???? :cry:

Por noentiendonada

92 de clabLevel



 

msie7
Citar            
MensajeEscrito el 20 Ago 2008 10:17 am
El problema es que le estás diciendo que cuando se presione una tecla te lo haga todo en ese momento y lo que quieres no es esto, sino que cuando presiones una tecla la función cambie de objetivo y en vez de ser el primer campo sería el segundo y así consecutivamente, lo que tienes que hacer es trabajar con variables que cambian dentro de la función, también sería bueno que unifiques los nombres de los campos por ejemplo uni0, uni1, uni2 y uni3 y que los demás campos estén inhabilitados para que el usuario no pueda rellenar el 4 antes que el 1, bueno te propongo algo como esto (el arreglo correcto son todas las respuestas correctas en orden):

Código ActionScript :

//---EN EL FRAME PRIMERO DE TU PELICULA

//---Deshabilitar todos los campos de texto menos el primero

for (var i:Number = 1; i<=3; i++) {

   _root["uni"+i].selectable = false;

}

//---Campo actual con que se está trabajando
var actual:Number = 0;

//---Arreglo de resultados correctos
var correcto:Array = new Array(2, 3, 4, 5);

//---EN EL BOTON

on (keyPress "<Enter>") {
   
   var actual:Number = _root.actual;

   if (_root["uni"+actual].text != String(_root.correcto[actual])) {

      trace("error");

      _root.score4--;
      _root.trie4++;

   } else {

      trace("correcto");

      _root.score4++;
      _root.trie4++;

      _root["uni"+actual].selectable = false;

      if (actual != _root.correcto.length-1) {

         _root["uni"+(actual+1)].selectable = true;
         Selection.setFocus(_root["uni"+(actual+1)]);

         _root.actual++;

      }else{
         
         trace("ha respondido todas las preguntas correctamente");
         
      }
   }
}

Por elchininet

Claber

3921 de clabLevel

17 tutoriales

Genero:Masculino  

Front-end developer at Booking.com

firefox
Citar            
MensajeEscrito el 20 Ago 2008 07:41 pm
pero aqui en donde colocas cual es la respuesta correcta, porque no tiene un seguimiento? es decir si yo tengo:

Código :

Array = new Array(2, 3, 4, 5);// aqui me estoy refiriendo a mi introd de texto?
on (keyPress "<Enter>") {      
var actual:Number = _root.actual;   
if (_root["uni"+actual].text != String(_root.correcto[actual])) {    // y el actual en donde se encuentra mi usuario  
trace("error");     // como detecta error si no sabe cual es la respuesta? 
_root.score4--;    //estos para agregar y quitar score  
_root.trie4++;   
} else {     
 trace("correcto");     
 _root.score4++;    
  _root.trie4++;      
_root["uni"+actual].selectable = false;     
 if (actual != _root.correcto.length-1) {         
_root["uni"+(actual+1)].selectable = true;        
 Selection.setFocus(_root["uni"+(actual+1)]);         
_root.actual++;     
 }else{                 
 trace("ha respondido todas las preguntas correctamente");               }   }}

el resto del codigo lo entiendo pero lo que no entendi es en donde coloco la respuesta correta para cada introd de texto..? y ya despues supongo que le agrego el select?

Por noentiendonada

92 de clabLevel



 

msie7
Citar            
MensajeEscrito el 20 Ago 2008 08:54 pm
No leiste mi post por completo?


(el arreglo correcto son todas las respuestas correctas en orden)


Y el comentario en la línea del script

Código ActionScript :

//---Arreglo de resultados correctos  
 var correcto:Array = new Array(2, 3, 4, 5); 

Por elchininet

Claber

3921 de clabLevel

17 tutoriales

Genero:Masculino  

Front-end developer at Booking.com

firefox
Citar            
MensajeEscrito el 21 Ago 2008 04:07 am
peldon jeje eso no lo entendi.. ok lo que pasa es que cuando cheque el codigo.. me marca todo error, y cambio los nuevos arrays a las respuestas correctas (2, 7, 15, 148); y me sigue marcando error tambien cambie lo del score porque tambien me lo marcaba mal pero eso ya funciona y agrege como me comentabas que uni fuera uni0 y cambie todo mi codigo es decir quedo de esta manera:
en el boton

Código :

on (keyPress "<Enter>") {      
var actual:Number = _root.actual;   
if (_root["uni0"+actual].text != String(
      _root.correcto[actual])) {      
trace("error");      
_root.error4 += 1;      
_root.trie4 += 1;  
} else {      
trace("correcto");     
_root.score4 += 1;     
_root.trie4 += 1;     
_root["uni0"+actual].selectable = false;      
if (actual != _root.correcto.length-1) {         
_root["uni0"+(actual+1)].selectable = true;         
Selection.setFocus(_root["uni0"+(actual+1)
   ]
);         
_root.actual++;      
}else{                 
trace("ha respondido todas las preguntas correctamente");     //que este realmente no es necesario porque no tengo otro texto dinamico asi que lo voy a cambiar por delete ("var uni");          
}  
}
}  


en el primer fotograma de trabajo

Código :

for (var i:Number = 1; i<=3; i++) {   
_root["uni0"+i].selectable = false;
}

var actual:Number = 0;
var correcto:Array = new Array(2, 7, 15, 148);

Por noentiendonada

92 de clabLevel



 

msie7
Citar            
MensajeEscrito el 21 Ago 2008 11:32 am
Fíjate en mi código y fíjate en el tuyo:

En el tuyo:

Código ActionScript :

//---Te estás refiriendo a textFields llamados uni00, uni01, uni02, etc
_root["uni0"+actual]


El que te puse

Código ActionScript :

//---Me estoy refiriendo a textFields llamados uni0, uni1, uni2, etc
_root["uni"+actual]

Por elchininet

Claber

3921 de clabLevel

17 tutoriales

Genero:Masculino  

Front-end developer at Booking.com

firefox
Citar            
MensajeEscrito el 23 Ago 2008 02:39 am
ya encontre mi error como siempre MASTER =) el problema fue como dices que cuando yo agrege el "uni0" me empezo a marcar uni00, uni01, etc.. y nada tenia ese nombre!! y por otra parte que yo creo que fue el mas grave fue que el uni0,uni1,uni2,uni3 lo puse como nombre de variable y no de instancia, asi que hice ese cambio y funciona perfecto y para que me cambie a otro frame une vez que hayas contestado le coloque en vez de "trace" nextframe y me funciona excelente!! muchas gracias por los consejos =).. y aprovechando este capitulo todo es de contestar de esta manera, en cada frame debo poner mis mismos codigos o solo en los botones para cambiar los resultados y los nombres de instancia? es decir que el codigo de mi linea de tiempo se queda igual o debo colocarlo en cada frame?

Por noentiendonada

92 de clabLevel



 

msie7
Citar            
MensajeEscrito el 25 Ago 2008 11:42 am
El código lo dejas igual, solamente vas cambiando el valor del arreglo con las respuestas correctas.

Sería entonces bueno que el ciclo que deshabilita los botones al principio lo hagas una función, para que en cada frame solamente pongas a "actual" en 0 crees el nuevo arreglo de respuestas correctas y mandes a deshabilitar todos los textos menos el primero mediante la función creada.

Por elchininet

Claber

3921 de clabLevel

17 tutoriales

Genero:Masculino  

Front-end developer at Booking.com

firefox

 

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