Foros del Web » Soporte técnico » Ayuda General »

[SOLUCIONADO] Dudas en AS2

Estas en el tema de Dudas en AS2 en el foro de Ayuda General en Foros del Web. Tengo inconvenientes con as2 Tengo 20 movieclips de preguntas y 20 de respuestas, quisiera almacenarlos en Arrays cada bloque [array(preguntas), array(respuestas)], como puedo hacer cuando ...
  #1 (permalink)  
Antiguo 12/02/2015, 08:28
 
Fecha de Ingreso: febrero-2015
Ubicación: Verona
Mensajes: 8
Antigüedad: 9 años, 2 meses
Puntos: 0
Información Dudas en AS2

Tengo inconvenientes con as2
Tengo 20 movieclips de preguntas y 20 de respuestas, quisiera almacenarlos en Arrays cada bloque [array(preguntas), array(respuestas)], como puedo hacer cuando al presionar un tema movieclip X(ejemplo pregunta 8), muestre una respuesta movieclip X(respuesta 8).
Alguna idea.

Al momento lo tengo de la manera mas larga y creo q poco ortodoxa, pero quisiera ver alguna forma de optimizar el codigo

pregunta1.onRelease = function(){
pregunta1.enabled=false;
respuesta1._visible=true;
calificacion1._visible=true;
}
Lo deseo optimizar xq tengo ejercicios con mas de 40 preguntas y 40 respuestas y pues hacerlo de la manera larga... es realmente laaargoooo.
Porfa su ayuda
Gracias de antemano.

Última edición por cuca300; 12/02/2015 a las 08:30 Razón: correccion de explicacion
  #2 (permalink)  
Antiguo 02/06/2015, 08:26
 
Fecha de Ingreso: febrero-2015
Ubicación: Verona
Mensajes: 8
Antigüedad: 9 años, 2 meses
Puntos: 0
Respuesta: Dudas en AS2

Doy solucion a este tema que lo puse algun tiempo atras, y de pronto solucione el dia de alguien.

El ejercicio presente tiene una pregunta con 4 respuestas posibles (pero pueden ser cualquier cantidad de items), y solo una respuesta correcta, y al seleccionar debe mostrar correcto o incorrecto segun seleccione el usuario.
Para eso creo un movieclip para ser usado como boton ha ser presionado por el usuario y lo pongo sobre cada respuesta, y lo unico que cambia son los nombres de instancias, para mi caso tengo un banco de 120 preguntas y cada una con 4 posibles respuestas, entonces creo dos Arrayas, uno para las respuestas correctas (serie de la 'a' y un numero) y otro para las incorrectas (serie de la 'b' y un numero), y un solo movieclip de calificacion (dentro del movieclip tiene dos frames de correcto y otro incorrecto, con los nombres de 'bien' y 'mal')el cual va a ser adjuntado a cada boton....

stop();
//variable para calificacion
var num:Number = 0;
//variable para la calificicaion
var calif:MovieClip;
/// declaro todas las respuestas correctas e incorrectas
var bien:Array = [a1, a2, hasta n respuestas afirmativas];
var mal:Array = [b1, b2, b3, hasta n respuestas negativas];
///// funcion para respuestas correctas
function correctos()
{
for (var i = 0; i < bien.length; i++)
{
//// almaceno en bt1 cada respuesta correcta
var bt1 = bien[i];
//al presionar cada boton hago las acciones
bt1.onPress = function()
{
//// duplico el movieclip llamado calificacion cada vez que hago clic sobre un boton,
calif = calificacion.duplicateMovieClip('cal' + num, num++, this.getNextHighestDepth(num));
// como estamos en el array de los correctos, la calificacion siempre muestra correcto
calif.gotoAndPlay('bien');
/// el punto de ancla del movieclip de los botones de respuesta debe estar en la esquina superior derecha, para que se adjunte la calificacion en la parte superior (aunque no es obligatorio, puede ser donde gusten)
calif._x = this._x;
calif._y = this._y;
/// deshabilito el boton cada vez q hago clic para que no se genere duplicados de la calificacion sobre un mismo boton
this.enabled = false;
};
}
}

//// para la funcion incorrectos es la misma de correctos excepto por la calificacion
function incorrectos()
{
for (var i = 0; i < mal.length; i++)
{
var bt1 = mal[i];
bt1.onPress = function()
{
// como estamos en el array de los incorrectos, la calificacion siempre muestra incorrecto
calif = calificacion.duplicateMovieClip('cal' + num, num++, this.getNextHighestDepth(num));
calif.gotoAndPlay('mal');
calif._x = this._x;
calif._y = this._y;
this.enabled = false;
};
}
}
//// ejecuto las funciones
correctos();
incorrectos();

LISTO.
Saludos.

Última edición por cuca300; 02/06/2015 a las 08:28 Razón: correccion

Etiquetas: as2
Atención: Estás leyendo un tema que no tiene actividad desde hace más de 6 MESES, te recomendamos abrir un Nuevo tema en lugar de responder al actual.
Respuesta




La zona horaria es GMT -6. Ahora son las 01:20.