Ver Mensaje Individual
  #1 (permalink)  
Antiguo 20/06/2007, 17:02
yconoclasta
 
Fecha de Ingreso: febrero-2005
Mensajes: 135
Antigüedad: 19 años, 1 mes
Puntos: 0
Exclamación Drag and drop, validar drops correctos e incorrectos

Hola, estoy realizando un juego de arrastrar y soltar palabras dentro de dos diferentes cajas de texto. El objetivo es que el usuario acomode correctamente las palabras en la respectiva caja y al final hacer una validación de los aciertos y errores que tuvo.

Aquí publico parte del código que tengo:

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_barata""pap_menos_blanca""pap_opacos""pap_mas_cuerpo""pap_no_quita_lignina""pap_amarillentos");
var 
correctasEjer:Array = new Array(arrayColQuimica,arrayColMecanica);
trace (correctasEjer);
var 
arrayColQuimicaResp:Array = new Array(1);
var 
arrayColMecanicaResp:Array = new Array(1);
var 
respondidasEjer:Array = new Array(arrayColQuimicaResparrayColMecanicaResp);
function 
colocaTextos(movieClip){
    
with (ejercicio) {
        
columnas = [(cel_mecanica), (cel_quimica)];
        
colMecanica columnas[0];
        
colQuimica columnas[1];
        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) {
                    for(
j=0;j<_root.arrayColMecanicaResp.length;j++){
                        
//trace ("contenidos arreglo ColMecanicaResp "+_root.arrayColMecanicaResp[j]);
//                        if (movieClip != _root.arrayColMecanicaResp[j]){
                        
if (_root.arrayColMecanicaResp[j] == or _root.arrayColMecanicaResp[j] != movieClip){
                            var 
arrayTemporal:Array = _root.arrayColMecanicaResp.slice();
                            
_root.arrayColMecanicaResp.push(movieClip);
                            
trace ("escribe el movieclip en el array columna mecanica 1 "+_root.arrayColMecanicaResp);
                            
trace ("escribe el movieclip en el array columna quimica 1 "+_root.arrayColQuimicaResp);
                            
trace ("contenido array temporal "+arrayTemporal);
                        }else if(
_root.arrayTemporal[j] == movieClip){
                            
delete _root.arrayColMecanicaResp[j];
                            
_root.arrayColQuimicaResp.push(movieClip);
                            
trace ("escribe el movieclip en el array columna quimica 2 "+_root.arrayColQuimicaResp);
                            
trace ("escribe el movieclip en el array columna mecanica 2 "+_root.arrayColMecanicaResp);
                            
trace ("contenido array temporal "+arrayTemporal);
                        }
                    }
                }else{
                    for(
k=0;k<_root.arrayColQuimicaResp.length;k++){
                        if (
movieClip != _root.arrayColQuimicaResp[k]){
                            
_root.arrayColQuimicaResp.push(movieClip);
                        }
                    }
                }
                
trace ("array respondidas ejercicio**"+_root.respondidasEjer);
            }
        }
    }
}
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);
    };

Y para muestra el swf que resulta:
Archivo SWF

Mi problema radica en que no he podido lidiar bien con los array.

La idea que tengo es que cuando alguien suelte la palabra dentro de alguna caja, esta acción se guarde en un arreglo, la palabra que fue soltada y la caja. Si el usuario cambia la palabra de caja, entonces que se reacomode el array.

Además, aun falta un botón que el usuario tendrá que presionar al finalizar de organizar las palabras el cual deberá corroborar qué palabras están bien puestas en una caja y otra, y cuales no.

Espero ser claro.

Gracias.