Ver Mensaje Individual
  #1 (permalink)  
Antiguo 08/06/2010, 14:21
longoe
 
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));
}