Ver Mensaje Individual
  #1 (permalink)  
Antiguo 14/12/2009, 13:45
bengaba1981
Usuario no validado
 
Fecha de Ingreso: octubre-2007
Mensajes: 1
Antigüedad: 16 años, 5 meses
Puntos: 0
Problema con colisiones y eventos

Buenas tardes.
Tengo el siguiente problema...en las lineas de codigo que siguen a continuacion he intentado hacer el tipico "juego" para niños en el que tienes que encajar tres figuras en sus huecos. Una vez chocan los bordes, se posiciona y deja de ser posible arrastrarla, pero eso tan solo ocurre en el caso de que suelte el raton, si no es asi, el programa falla. ¿Alguien puede ayudarme? Un saludo y gracias!


var tiempo:Timer =new Timer(1000);
var bCirculo:Boolean=false;
var bCuadrado:Boolean=false;
var bTriangulo:Boolean=false;

function arrastrar (e:MouseEvent):void
{
e.target.startDrag();
//circulo_mc.startDrag();
}
function soltar (e:MouseEvent):void
{
e.target.stopDrag();
//circulo_mc.stopDrag();
}

function comprobarColision(t:TimerEvent)
{
if(circulo_mc.hitTestObject(contcirculo_mc)&& !bCirculo)
{
trace("Colision Ciruclo");
circulo_mc.dropTarget;
trace("Circulo Soltado");
circulo_mc.removeEventListener(MouseEvent.MOUSE_DO WN,arrastrar,false);
trace("Evento Arrastrar Muerto");
circulo_mc.x=contcirculo_mc.x;
circulo_mc.y=contcirculo_mc.y;
trace("Ciruclo Colocado");
tiempo.stop();
bCirculo=true;

}
else if(cuadrado_mc.hitTestObject(contcuadrado_mc) && !bCuadrado)
{
trace("Colision Cuadrado");
cuadrado_mc.x=contcuadrado_mc.x;
cuadrado_mc.y=contcuadrado_mc.y;
cuadrado_mc.removeEventListener(MouseEvent.MOUSE_D OWN,arrastrar);
trace("Cuadrado Colocado");
tiempo.stop();
bCuadrado=true;
cuadrado_mc.removeEventListener(MouseEvent.MOUSE_D OWN,arrastrar);
}
else if(triangulo_mc.hitTestObject(conttriangulo_mc)&& !bTriangulo)
{
trace("Colision Triangulo");
triangulo_mc.x=conttriangulo_mc.x;
triangulo_mc.y=conttriangulo_mc.y;
triangulo_mc.removeEventListener(MouseEvent.MOUSE_ DOWN,arrastrar);
trace("Triangulo Colocado");
tiempo.stop();
bTriangulo=true;
triangulo_mc.removeEventListener(MouseEvent.MOUSE_ DOWN,arrastrar);
}
if(!bCirculo||!bTriangulo||!bCuadrado)
{
tiempo.addEventListener(TimerEvent.TIMER,comprobar Colision);
tiempo.start();
}
else
{
trace("FINALIZADO CON EXITO");
tiempo.stop();
}
}

circulo_mc.addEventListener(MouseEvent.MOUSE_DOWN, arrastrar);
cuadrado_mc.addEventListener(MouseEvent.MOUSE_DOWN ,arrastrar);
triangulo_mc.addEventListener(MouseEvent.MOUSE_DOW N,arrastrar);
circulo_mc.addEventListener(MouseEvent.MOUSE_UP,so ltar);
cuadrado_mc.addEventListener(MouseEvent.MOUSE_UP,s oltar);
triangulo_mc.addEventListener(MouseEvent.MOUSE_UP, soltar);

tiempo.addEventListener(TimerEvent.TIMER,comprobar Colision);
tiempo.start();