Foros del Web » Creando para Internet » Flash y Actionscript »

Terminar una función cuando presiono ENTER

Estas en el tema de Terminar una función cuando presiono ENTER en el foro de Flash y Actionscript en Foros del Web. 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 ...
  #1 (permalink)  
Antiguo 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));
}
  #2 (permalink)  
Antiguo 09/06/2010, 00:09
Avatar de mortiprogramador
Colaborador
 
Fecha de Ingreso: septiembre-2009
Ubicación: mortuoria
Mensajes: 3.805
Antigüedad: 15 años, 2 meses
Puntos: 214
Respuesta: Terminar una función cuando presiono ENTER

Hola
tal vez te sirva esto
saludos
__________________
"Si consigues ser algo más que un hombre, si te entregas a un ideal, si nadie puede detenerte, te conviertes en algo muy diferente."
Visita piggypon.com
  #3 (permalink)  
Antiguo 09/06/2010, 11:06
 
Fecha de Ingreso: junio-2010
Mensajes: 4
Antigüedad: 14 años, 5 meses
Puntos: 0
Respuesta: Terminar una función cuando presiono ENTER

Hola mortiprogrammador,
gracias por el posteo,
el script
Código:
var keyListener:Object = new Object();
keyListener.onKeyDown = function() {
if (Key.isDown(Key.ENTER)) {
gotoAndPlay("escena"); 
//o si no gotoAndStop();
//o play();
}
Key.addListener(keyListener);
sirve para desplazarme a otro fotograma, pero lo que yo necesito es que al presionar ENTER se termine la funcion sin eliminar nada de lo dibujado...
alguna idea?
muchas gracias
  #4 (permalink)  
Antiguo 10/06/2010, 02:22
Avatar de mortiprogramador
Colaborador
 
Fecha de Ingreso: septiembre-2009
Ubicación: mortuoria
Mensajes: 3.805
Antigüedad: 15 años, 2 meses
Puntos: 214
Respuesta: Terminar una función cuando presiono ENTER

Cita:
Iniciado por longoe Ver Mensaje
Hola mortiprogrammador,
gracias por el posteo,
el script
Código:
var keyListener:Object = new Object();
keyListener.onKeyDown = function() {
if (Key.isDown(Key.ENTER)) {
gotoAndPlay("escena"); 
//o si no gotoAndStop();
//o play();
}
Key.addListener(keyListener);
sirve para desplazarme a otro fotograma, pero lo que yo necesito es que al presionar ENTER se termine la funcion sin eliminar nada de lo dibujado...
alguna idea?
muchas gracias
Pues se me ocurre esta idea
Mouse.removeListener(escucha);de nada
__________________
"Si consigues ser algo más que un hombre, si te entregas a un ideal, si nadie puede detenerte, te conviertes en algo muy diferente."
Visita piggypon.com

Etiquetas: cuando, enter, terminar
Atención: Estás leyendo un tema que no tiene actividad desde hace más de 6 MESES, te recomendamos abrir un Nuevo tema en lugar de responder al actual.
Respuesta




La zona horaria es GMT -6. Ahora son las 17:14.