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

problema con Key.getCode

Estas en el tema de problema con Key.getCode en el foro de Flash y Actionscript en Foros del Web. hola estoy probando tengo un problema con un codigo hice un teclado con cada letra en un movieclip que tiene su nombre y un codigo ...
  #1 (permalink)  
Antiguo 01/04/2005, 20:06
Avatar de webgeri  
Fecha de Ingreso: marzo-2005
Ubicación: montevideo
Mensajes: 374
Antigüedad: 12 años, 9 meses
Puntos: 0
Pregunta problema con Key.getCode

hola estoy probando

tengo un problema con un codigo
hice un teclado con
cada letra en un movieclip que tiene su nombre
y un codigo que al presionar una de esas letras en el teclado
el mc de la letra baja su alpha a 0
y al soltar la tecla el mc de la letra sube su alpha a 100

hasta ahi todo bien pero
si escribo despacio respeta el codigo
hace el efecto deseado
pero si escribo un poco mas rapido
las letras quedan totalmente desvanecidas
o en cierto punto del efecto
cuando vuelvo a presionar la tecla que quedo como "trancada"
se arregla porque vuelve a hacer el efecto
pero, porque sucede eso?
se puede arreglar?
o quizas haya algo mal en el codigo que utilizo

aca pongo el link al swf para que vean lo que sucede
http://webg0.tripod.com/

y este es codigo al frame que estoy usando

System.useCodepage = true;
this.onEnterFrame = function(escribir) {
codigo = Key.getCode();
l = String.fromCharCode(codigo);
if (Key.isDown(codigo)) {
if (_root[l]._alpha>=0) {
_root[l]._alpha -= 100;
}
} else {
if (_root[l]._alpha<=100) {
_root[l]._alpha += 10;
}
}
};
stop();


se aceptan sugerencias

sldos

Última edición por webgeri; 01/04/2005 a las 20:49 Razón: edicion del texto
  #2 (permalink)  
Antiguo 02/04/2005, 15:15
Avatar de webgeri  
Fecha de Ingreso: marzo-2005
Ubicación: montevideo
Mensajes: 374
Antigüedad: 12 años, 9 meses
Puntos: 0
Busqueda ahora

bueno estuve leyendo un poco la ayuda y quizas
asi este mejor el codigo
pero hay un error y no he descubierto como arreglarlo

var keyListener:Object = new Object();
keyListener.onKeyDown = function() {
codigo = Key.getCode();
l = String.fromCharCode(codigo);
if (_root[l]._alpha>=0) {
_root[l]._alpha -= 10;
}
};
keyListener.onKeyUp = function() {
codigo = Key.getCode();
l = String.fromCharCode(codigo);
if (_root[l]._alpha<=100) {
_root[l]._alpha += 10;
}
};
Key.addListener(keyListener);

ahora el tema no es que cuando la tecla no esta presionada
aumenta solo una vez 10
como hago pero repita la accion?

bueno quizas tampoco es con este script que logro lo que quiero
pero seguire intentandolo
alguna idea?
se aceptan sugerencias

sldos
  #3 (permalink)  
Antiguo 03/04/2005, 12:58
Avatar de junihh  
Fecha de Ingreso: febrero-2004
Ubicación: República Dominicana
Mensajes: 997
Antigüedad: 13 años, 10 meses
Puntos: 7
Hola Webgeri

Trate de hacerlo setInterval y aun no me sale del todo bien. Este es el codigo que use:
Código:
var valor = 100;
Selection.setFocus("insertar");
//
//
function teclaDown() {
	clearInterval(tiempo);
	tiempo = setInterval(fadeIn, 1);
	function fadeIn() {
		objeto._alpha = valor;
		updateAfterEvent();
		valor = valor-5;
		if (valor<30) {
			clearInterval(tiempo);
		}
	}
}
function teclaUp() {
	clearInterval(tiempo);
	tiempo = setInterval(fadeOut, 1);
	function fadeOut() {
		_root[codigo]._alpha = valor;
		updateAfterEvent();
		valor = valor+5;
		if (valor>100) {
			clearInterval(tiempo);
		}
	}
}
//
//
var keyListener:Object = new Object();
keyListener.onKeyDown = function() {
	codigo = Key.getAscii();
	//_root[codigo]._alpha = 30;
	teclaDown();
};
keyListener.onKeyUp = function() {
	codigo = Key.getAscii();
	//_root[codigo]._alpha = 100;
	teclaUp();
};
Key.addListener(keyListener);
Luego a cada MC de cada caracter le puse como nombre el codigo Ascii de cada uno. Si quieres puedes bajar de aqui mi muestra.
__________________
JuniHH
- Mi blog
- Mi portafolio
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 20:20.