Estoy realizando un juego de organización de elementos en columnas.
Tengo dos columnas con diferentes nombres a las que hay que arrastrar elementos de manera adecuada que correspondan con la columna.
Para hacer la validación tengo dos array que contienen las respuetas correctas, además de otros dos array en los que se van añadiendo los elementos de manera dinámica conforme se van arrastrando a la columna.
Todo bien hasta el momento de hacer la validación y comparación de los cuatro array, ya que no puedo obtener los resultados equivocados, sólo los buenos.
Aquí el código:
Código PHP:
var arrayColQuimica:Array = new Array("pap_cara", "pap_mas_blanca", "pap_mas_blancos", "pap_menos_cuerpo", "pap_quita_lignina");
var arrayColMecanica:Array = new Array("pap_amarillentos", "pap_barata", "pap_mas_cuerpo", "pap_menos_blanca", "pap_no_quita_lignina", "pap_opacos");
var correctasEjer:Array = arrayColQuimica.concat(arrayColMecanica);
trace (correctasEjer);
var arrayColQuimicaResp:Array = new Array();
var arrayColMecanicaResp:Array = new Array();
var respondidasEjer:Array = new Array(arrayColQuimicaResp, arrayColMecanicaResp);
arrayColQuimicaResp.concat(arrayColMecanicaResp);
function colocaTextos(movieClip){
with (ejercicio) {
columnas = [(cel_mecanica), (cel_quimica)];
colMecanica = columnas[0];
colQuimica = columnas[1];
movieClipString = String(movieClip).substr(18);
var arrayTemporal1:Array = _root.arrayColMecanicaResp.slice();
var arrayTemporal2:Array = _root.arrayColQuimicaResp.slice();
j=0;
while(movieClipString != arrayTemporal1[j] and j < arrayTemporal1.length){
j++;
}
k=0;
while(movieClipString != arrayTemporal2[k] and k < arrayTemporal2.length){
k++;
}
Array.prototype.removeItem=function(find){
for(var z=0;z<this.length;++z){
if(this[z] == find){
this.splice(z,1)
}
}
return false
}
for(i=0;i<columnas.length;i++){
if (eval(movieClip._droptarget) == columnas[i]) {
movieClip._x = columnas[i]._x + ((columnas[i]._width - movieClip._width)/2);
trace ("donde se soltó el MC "+eval(movieClip._droptarget));
trace ("nombre del MC soltado "+movieClip);
if (eval(movieClip._droptarget) == colMecanica) {
trace ("valor inicial del array colMecanica: "+_root.arrayColMecanicaResp);
trace ("valor actual del array colMecanicaTemporal: "+arrayTemporal1);
trace ("valor actual del array colQuimicaTemporal: "+arrayTemporal2);
if (arrayTemporal2[k] != movieClipString) {
trace ("MovieClip no está en la columna quimica");
if (arrayTemporal1[j] != movieClipString){
trace ("MovieClip no está en la columna mecanica, así que lo graba");
_root.arrayColMecanicaResp.push(movieClipString);
}else{
trace ("MovieClip ya está en la columna mecanica, no hace nada");
}
}else{
trace ("MovieClip ya estaba en la columna química, borrarlo");
trace ("MovieClip no está, logicamente, en la columna mecanica, así que lo graba");
//delete _root.arrayColQuimicaResp[k];
_root.arrayColQuimicaResp.removeItem(movieClipString);
_root.arrayColMecanicaResp.push(movieClipString);
}
} else if (eval(movieClip._droptarget) == colQuimica) {
trace ("valor inicial del array colQuimica: "+_root.arrayColMecanicaResp);
trace ("valor actual del array colMecanicaTemporal: "+arrayTemporal1);
trace ("valor actual del array colQuimicaTemporal: "+arrayTemporal2);
if (arrayTemporal1[j] != movieClipString) {
trace ("MovieClip no está en la columna mecanica");
if (arrayTemporal2[k] != movieClipString){
trace ("MovieClip no está en la columna quimica, así que lo graba");
_root.arrayColQuimicaResp.push(movieClipString);
}else{
trace ("MovieClip ya está en la columna quimica, no hace nada");
}
}else{
trace ("MovieClip ya estaba en la columna mecanica, borrarlo");
trace ("MovieClip no está, logicamente, en la columna quimica, así que lo graba");
_root.arrayColMecanicaResp.removeItem(movieClipString);
_root.arrayColQuimicaResp.push(movieClipString);
}
}
trace ("array respondidas ejercicio**"+_root.respondidasEjer);
trace ("************************************************************************");
}
}
}
}
function comparaArraysQuimica() {
//trace ("compara quimica");
var arrayColQuimicaRespTemp:Array = _root.arrayColQuimicaResp.slice();
arrayColQuimicaRespTemp.sort();
trace ("Array Correctas Quimica Ejercicio: "+arrayColQuimica);
trace ("Array Respondidas Quimica Ejercicio: "+arrayColQuimicaRespTemp);
for (var l = 0; l<arrayColQuimica.length; l++) {
for (var m = 0; m<arrayColQuimicaResp.length; m++) {
if (arrayColQuimica[l] == arrayColQuimicaRespTemp[m]) {
trace ("correctas"+arrayColQuimica[l]);
trace ("respondidas"+arrayColQuimicaRespTemp[m]);
trace ("Felicidades, esta respuesta en columna química es correcta: "+arrayColQuimicaRespTemp[m]);
}
}
}
delete arrayColQuimicaRespTemp;
}
function comparaArraysMecanica() {
//trace ("compara mecanica");
var arrayColMecanicaRespTemp:Array = _root.arrayColMecanicaResp.slice();
arrayColMecanicaRespTemp.sort();
trace ("Array Correctas Mecanica Ejercicio: "+arrayColMecanica);
trace ("Array Respondidas Mecanica Ejercicio: "+arrayColMecanicaRespTemp);
for (var n = 0; n<arrayColMecanica.length; n++) {
for (var o = 0; o<arrayColMecanicaRespTemp.length; o++) {
if (arrayColMecanica[n] == arrayColMecanicaRespTemp[o]) {
trace ("correctas: "+arrayColMecanica[n]);
trace ("respondidas: "+arrayColMecanicaRespTemp[o]);
trace ("Felicidades, esta respuesta en la columna mecánica es correcta: "+arrayColMecanicaRespTemp[o]);
}
}
}
delete arrayColMecanicaRespTemp;
}
with (ejercicio) {
pap_amarillentos.onPress = function() {
this.startDrag();
};
pap_amarillentos.onRelease = function() {
this.stopDrag();
_root.colocaTextos(pap_amarillentos);
};
pap_barata.onPress = function() {
this.startDrag();
};
pap_barata.onRelease = function() {
this.stopDrag();
_root.colocaTextos(pap_barata);
};
pap_cara.onPress = function() {
this.startDrag();
};
pap_cara.onRelease = function() {
this.stopDrag();
_root.colocaTextos(pap_cara);
};
pap_mas_blanca.onPress = function() {
this.startDrag();
};
pap_mas_blanca.onRelease = function() {
this.stopDrag();
_root.colocaTextos(pap_mas_blanca);
};
pap_mas_blancos.onPress = function() {
this.startDrag();
};
pap_mas_blancos.onRelease = function() {
this.stopDrag();
_root.colocaTextos(pap_mas_blancos);
};
pap_mas_cuerpo.onPress = function() {
this.startDrag();
};
pap_mas_cuerpo.onRelease = function() {
this.stopDrag();
_root.colocaTextos(pap_mas_cuerpo);
};
pap_menos_blanca.onPress = function() {
this.startDrag();
};
pap_menos_blanca.onRelease = function() {
this.stopDrag();
_root.colocaTextos(pap_menos_blanca);
};
pap_menos_cuerpo.onPress = function() {
this.startDrag();
};
pap_menos_cuerpo.onRelease = function() {
this.stopDrag();
_root.colocaTextos(pap_menos_cuerpo);
};
pap_no_quita_lignina.onPress = function() {
this.startDrag();
};
pap_no_quita_lignina.onRelease = function() {
this.stopDrag();
_root.colocaTextos(pap_no_quita_lignina);
};
pap_opacos.onPress = function() {
this.startDrag();
};
pap_opacos.onRelease = function() {
this.stopDrag();
_root.colocaTextos(pap_opacos);
};
pap_quita_lignina.onPress = function() {
this.startDrag();
};
pap_quita_lignina.onRelease = function() {
this.stopDrag();
_root.colocaTextos(pap_quita_lignina);
};
botonVerificar.onRelease = function() {
if ((_root.arrayColQuimica.length+_root.arrayColMecanica.length) > (_root.arrayColQuimicaResp.length+_root.arrayColMecanicaResp.length)){
trace ("Debes de agrupar todas las palabras en la columna correspondiente");
}else{
_root.comparaArraysMecanica();
_root.comparaArraysQuimica();
}
};
}
http://percepcionunitaria.org/prueba...jercicio01.swf
Lo que necesito es que al momento de apretar el boton de validar, revise qué palabras están bien soltadas en la columna correspondiente y qué palabras no.
¿Alguna idea?
Gracias