08/06/2010, 14:21
|
| | Fecha de Ingreso: junio-2010
Mensajes: 4
Antigüedad: 14 años, 5 meses Puntos: 0 | |
Terminar una función cuando presiono ENTER Estimados,
tengo la siguiente codificación en AS2, que me calcula las areas del poligono que dibujo. Lo que necesito es que cuando presione la tecla ENTER deje de correr la función, se detena pero no me borre el poligono dibujado.
¿Cómo hago?
Mil gracias
Código:
var escucha:Object = new Object();
var ar:Array = new Array();
var aT:Number = 0;
escucha.onMouseDown = function() {
ar.push(new Array(_root._xmouse, _root._ymouse));
var l:Number = ar.length;
if (l>=3) {
if (_root.area2.hitTest(_root._xmouse, _root._ymouse, true)) {
aT -= area2Triangulo(ar[l-1][0], ar[l-1][1], ar[l-2][0], ar[l-2][1], ar[l-3][0], ar[l-3][1]);
} else {
aT += area2Triangulo(ar[l-1][0], ar[l-1][1], ar[l-2][0], ar[l-2][1], ar[l-3][0], ar[l-3][1]);
}
_root.createEmptyMovieClip("area2",1);
_root.area2.beginFill(0xCCCCCC, 50);
_root.area2.lineStyle(1, 0xFF00FF, 100);
_root.area2.moveTo(ar[0][0], ar[0][1]);
for (var i:Number = 1; i<l; i++) {
_root.area2.lineTo(ar[i][0], ar[i][1]);
}
_root.area2.lineTo(ar[0][0], ar[0][1]);
endFill();
}
trace("El area seleccionada tiene : "+aT+" pixeles");
};
Mouse.addListener(escucha);
function distancia(xa, ya, xb, yb) {
return Math.sqrt(Math.pow(xa-xb, 2)+Math.pow(ya-yb, 2));
}
function area2Triangulo(xa, ya, xb, yb, xc, yc) {
var a:Number = distancia(xa, ya, xb, yb);
var b:Number = distancia(xb, yb, xc, yc);
var c:Number = distancia(xc, yc, xa, ya);
var p:Number = (a+b+c)/2;
return Math.sqrt(p*(p-a)*(p-b)*(p-c));
}
|