Aplicación en flash

Es posible hacer una aplicación que haga lo siguiente:
Se presenta un pantalla con 6 figuras diferentes, de las cuales el usuario debe elegir una y el programa debería guardar ese valor.
Lo mismo para 15 pantallas (cada una con 6 figuras diferentes)
Al final de esas 15 pantallas, la aplicación debería darme un listado con los resultados de las 15 elecciones que hizo el usuario.
Eso es lo básico que debería hacer el programa.
Como complemento (pero no menos importante) seria ideal que el programa registre el tiempo de respuesta desde que aparece la pantalla hasta que el usuario clickea una figura.

1 respuesta

Respuesta
1
A ver vamos por parte para que me entiendas bien.
Primero vamos a suponer que van a ser dos pantallas en total (en vez de 15), y que elija entre 2 figuras (en vez de 6), para que sea más entendible. Total dsp es agregar más figuras y más pantallas todas con las mismas funciones.
Vamos a crear un flash con tres capas, una para las acciones, otra para el tiempo y la otra para las figuras que van a ser en este caso 2 botones (en el tuyo 6)
Una vez creados los dos botones y situados en el primer fotograma (en la capa de las figuras) agregale a cada uno esta acción dentro de las acciones del botón:
on (press) {
pantalla_uno="opcion 1"; // este valor cambia para cada boton
gotoAndStop(2);
}
Este código va en cada uno de los botones (tus 6 figuras), y lo único que cambia en cada uno es el numero: "opción 1", opción 2",... así hasta la 6.
Una vez hecho esto ve al frame 2, e inserta un fotograma vacío en la capa figuras. Ahora en este fotograma inserta las nuevas figuras (6 botones) y poneles a cada uno en sus acciones el mismo código con esta diferencia:
on (press) {
pantalla_dos="opcion 1"; // cambia el numero de pantalla y el valor para cada boton
gotoAndStop(3);
}
Cambiando el valor de la opción para cada botón.
Ahora en el fotograma 3 en la capa figuras, inserta en fotograma clave vacío, y dos cajas de texto dinámico, a uno ponele nombre de instancia txt_uno, y al otro txt_dos
En ese mismo fotograma pero en la capa de acciones, crea un fotograma clave vacío, y en las acciones del fotograma pon este código:
_root.txt_uno.text=pantalla_uno; // este muestra la opcion elegida en la primer pantalla
_root.txt_dos.text=pantalla_dos; // y este la de la segunda pantalla
Avisame si me vas entendiendo hasta ahí así pasamos a la parte del tiempo, y una pregunta con respecto a este, ¿necesitas el tiempo por cada pantalla o el tiempo total?
Hola amigo...
La verdad que admiro tu vocación de ayudar..
Los pasos que me diste son más que claros...
Con respecto del tiempo, necesitaría las dos cosas... porque es para medir el tiempo de reacción de cada pantalla y el tiempo total empleado...
Ahora estoy de vacaciones y vuelvo a mi trabajo el día 26 de enero... allí seguiremos en contacto... pero te vuelvo a repetir mi agradecimiento, la verdad es que es algo importante en mi trabajo poder realizar esto.
Mil gracias.
Aclaración 1 (con el tiempo): este código te mide el tiempo en segundos, si lo necesitas con más precisión, ya habría que usar otra función distinta.
Vamos a ir guardando el tiempo (en segundos) de cada una de las pantallas en las variables: timer_uno, timer_dos, ... timer_quince. En el fotograma final mostramos todas esas variables en campos de textos dinámicos y también el tiempo total.
Comenzamos:
a)Crea un fotograma clave vacío en el primer fotograma de la capa de acciones e inserta este código:
//esta funcion se va a ejecutar durante todo el flash y en la variable segundos va guardando el tiempo total
var segundos:Number = 0;
function cronometro() //Se ejecuta cada 1000 milisegundos y suma el tiempo
{
segundos = segundos + 1;
setTimer();
}
function setTimer(){ //Escribe el tiempo
var seg:Number = segundos;
if (seg < 10){
tiempo.text = "0" + seg;
sentecimas_txt.text= sentecimas;
}else{
tiempo.text = seg;
}
}
setTimer();
var cro:Number = setInterval(cronometro, 1000); //Inicia la llamada a la funcion cronometro cada 1000 milisegundos
b) ahora en las acciones del primer fotograma en la capa figuras (en donde están las primeras imagenes para seleccionar)inserta este codigo:
Stop(); // este stop teoricamente ya lo tendrias que tener
pre_acumulado=0; // este nos va a permitir calcular el tiempo por pantalla a diferencia del total
c) ahora en las acciones del 2º fotograma en la capa figuras (donde estan las 2º imagenes a elegir) inserta lo siguiente:
stop();
pre_acumulado = pre_acumulado + timer_uno;
d) en el 3º iria:
stop();
pre_acumulado = pre_acumulado + timer_dos;
... y asi hasta el fotograma 15 en tu caso, aumentando en uno el numero del timer, o sea siempre seria
stop()
pre_acumulado = pre_acumulado + "timer de la pantalla anterior"
Ahora el codigo para los botones:
en las acciones de las figuras (botones) de la primer pantalla, agregale lo siguiente
timer_uno= segundos - pre_acumulado; // a todas las figuras de la 1º pantalla exactamente el mismo codigo
a las figuras de la segunda pantalla, lo siguiente:
timer_dos=segundos - pre_acumulado;
Y asi hasta la ultima pantalla, cambiando en cada caso el numero de la variable timer
mostrando resultados:
Primero que nada crea una nueva capa con nombre tiempo y en el primer fotograma crea un fotograma clave e inserta un campo de texto dinámico, con nombre de instancia tiempo (este te va a ir mostrando el tiempo total transcurrido, hasta el ultimo fotograma (donde mostrás los resultados), donde tienes que ingresarle un fotograma clave vacío.
En el ultimo fotograma de la capa acciones donde habías puesto el código para mostrar lo que habían seleccionado en cada pantalla, ingresa también el siguiente código:
timer_total=segundos; // tiempo total transcurrido
min_total= Math.floor (timer_total/60); //saca la parte entera para calcular los minutos
seg_total= timer_total % 60; //saca el resto para calcular los segundos
//MOstrando
_root.timer_uno_txt.text=timer_uno; //en el ultimo fotograma pero en la capa figuras crea un texto dinamico con nombre de instancia timer_uno_txt
_root.timer_dos_txt.text=timer_dos; //idem caso anterior y para los que siguen tmb.
_root.timer_tres_txt.text=timer_tres;
//tiempo total
_root.min_total_txt.text=min_total;
_root.seg_total_txt.text=seg_total;
Y listo!
Hola...
Hoy lunes he retomado mis actividades y me propongo implementar tus consejos...
Voy a armar todo y cualquier consulta te molesto..
Otra vez mil gracias por la ayuda.!
Te pediría si puedes calificar la respuesta si te fue de ayuda, así no me queda como activa la pregunta.

Añade tu respuesta

Haz clic para o

Más respuestas relacionadas