Comunidad de diseño web y desarrollo en internet online

Implementar "comandos dinámicos"

Citar            
MensajeEscrito el 04 Dic 2007 05:59 am
Buenas, estoy deseando implementar una rutina que me permita elegir qué tecla (ASCII) quiero usar para comandar cierto mc. Supongamos que quiero mover un mc en 2 direcciones, izquierda y derecha. Por lo que no sería muy complejo lograrlo. Es cuestión de definirle por ejemplo un Key.isDown("un numero"), y asunto resuelto. Pero, mi idea es que el tema sea más dinámico, que exista la posibilidad de que mediante un menu de opciones, en donde haya ciertos campos de introducción de texto, tener la posibilidad de ingresar una tecla a éstos, y que automáticamente actualize la tecla que queremos implementar para que comande determinada acción, en este caso éstos dos movimientos. Éstos campos de intro de texto tendrían una variable definida para cada cierta acción. En nuestro caso, tendríamos 2 campos de texto: uno cuya variable se refiere a mover EL mc a la izq, y el otro a la derecha. Luego, éste es el código que se ingresa en el mc en cuestión.


if (Key.isDown(_root.der) && this._x < 550)
{
this._x = this._x + 10;
}
if (Key.isDown(_root.izq) && this._x > 0)
{
this._x = this._x - 10;
}

donde "_root.der" y "_root.izq", hacen referencia a lo que se encuentra en la etiqueta Var de los campos de texto. Pero surge un inconveniente, para que ésto funcione se debe ingresar en los campos de intro de texto el número exacto en ASCII. Y mi idea era que al ingresar una tecla al campo de intro de texto, de alguna manera se convierta en número ASCII, ya sea implementando un Key.getCode o algo por el estilo, y de ahí se incorpore a la rutina. Podría alguien ayudarme? Muchas gracias.

Por COOKERNATOR

43 de clabLevel



Genero:Masculino  

msie
Citar            
MensajeEscrito el 04 Dic 2007 02:00 pm
lo unico que tienes que hacer es de la variable string donde tengas la letra que quieras que sea la que te capture el evento es:

_root.der = variable1.charCodeAt(0);
_root.izq = variable2.charCodeAt(0);

y luego para comprobar si es la letra que quieres en el evento onKeyDown comparar tal que:

if(_root.der == Key.getCode()){
.....
}

if(_root.izq == Key.getCode()){
......
}

Por ronproof

6 de clabLevel



Genero:Masculino  

Las Palmas

firefox
Citar            
MensajeEscrito el 05 Dic 2007 12:56 am
Muy bueno. Me funciona 10 puntos. Sólo me surge un inconveniente, a no ser que active el bloq mayus, es decir, que ingrese una string en mayúscula, el código de en este caso el que permite mover el mc no reconoce la minúscula (como si la minúscula no hiciera referencia a la tecla pertinente). Quise implemtentar un "toUpperCase", pero sin resultado.

_root.der = _root.variable1.charCodeAt(0);
_root.izq = _root.variable2.charCodeAt(0);
_root.derUC = _root.der.toUpperCase();
_root.izqUC = _root.izq.toUpperCase();

...y más abajo en el pedazo de código que implementa los "ifs" de movimiento, le adjudico la nueva variable "derUC" y "izqUC". No sólo no ingresa la string en mayúscula, sino que además, aunque lo haga yo manualmente con bloq mayus, es como si "toUpperCase" me estropease el código.

Por otro lado, ahora te o les hago una preguntilla más con respecto a este asuntillo: Cómo podría hacer para que mediante el tipeo de "las flechitas (las ASCII 37, 39, 38 y 40)", o las teclas de "CONTROLES (insert, supr, alt, control, etc.)" en el campo de intro de texto, me reconozca que estoy insertando una string, y no sólo moviendo la posición dentro de dicho campo, no se si me explico. Gracias por su tiempo.

Por COOKERNATOR

43 de clabLevel



Genero:Masculino  

msie

 

Cristalab BabyBlue v4 + V4 © 2011 Cristalab
Powered by ClabEngines v4, HTML5, love and ponies.