Ayuda - Búsqueda - Miembros - Calendario
Versión Completa: Deshabilitar Opción De Teclado En Mayúsculas (solucionado)
Swishmax.es. Foro de consulta en español > SwishMax > SwishMax 1
moritz
Hola a tod@s:


A ver si alguien me puede ayudar. En un archivo swf creado con swishmax me interesa que se escriba siempre en minúsculas, aunque la tecla de mayúsculas esté activada. ¿Existe alguna orden en action script que lo consiga hacer?


Un saludo
Gracias
Moritz.
dios_ohm
Hola Moritz, trayendo a mi memoria el script de tu proyecto de escribir en letras los números, si no me equivoco ahí tienes aplicada la propiedad restrict en un campo de texto de entrada.

También puedes ver algo al respecto en el siguiente enlace: Clíck aquí

Si no lo resuleves, ya sabes, a subir el archivo .swi así vemos en detalle el tema.

Saludos!
.

moritz
Hola dios_ohm:

Precisamente para ese proyecto lo quiero. Resulta que todo funciona bien si la tecla de mayúsculas no está activada, pero si se activa esa tecla se sigue escribiendo en minúsculas, pero las vocales con tilde no se pueden escribir.

Creo que descargaste ese proyecto, prueba a hacer esto y verás lo que te digo.


Un saludo
Moritz.
dios_ohm
Hola Moritz, acá te dejo un ejemplo de como detectar si está pulsada o no la tecla de bloqueo de mayúsculas, espero te resulte de utilidad.








Ver ampliado (+)

Cualquier cosa nos comentas.


Saludos!
.
moritz



Hola:

dios_ohm o algún otro miembro del foro, saben alguna forma de que el bloqueo de mayúsculas quede desactivado al iniciar el archivo swf. Con esa forma que me dices, habría que hacer un menú inicial que pida poner el teclado en minúsculas si no lo está. Pero después de iniciado el juego se puede pulsar por error el bloqueo de mayúsculas y el problema volverá a aparecer.



Un saludo
Moritz.
dios_ohm
Hola Moritz, creo no estar equivocado pero si te basas en el ejemplo, creando otro campo de texto a modo de "inspector", separas el resultado inicial del campo de texto bloqueo_mayusculas y aplicas p.e. un if pienso que podrías dirigir la película adonde quieras.

CÓDIGO
if (Key.isToggled(Key.CAPSLOCK)){
        inspector.text = "true";
        gotoAndPlay(adonde_quieras);  
        }


Prueba la idea y nos comentas.


Saludos!
.
moritz

Hola dios_ohm

Probaré a ver que ocurre, aunque pienso que si me llega a funcuionar, será siempre y cuando no se vuelva a tocar la tecla de bloqueo de mayúsculas durante el resto del juego para no reproducir el problema.
Otra cosa que he pensado es modificar la fuente y pasar las mayúsculas a minúsculas, así creo que dará igual que esté o no activada la tecla de bloque de mayúsculas....


un saludo, y gracias por todo.
Moritz
dios_ohm
Hola Moritz, por nada, ahora que me haces pensar un poco más es muy probable que si en vez de un if se colocan dos, como para poder controlar ambas situaciones, la del comienzo del juego y la del momento de la ejecución... habría que verlo bien porque tienes varias escenas en ese archivo pero no creo que resulte imposible de resolver con código, ahora en Argentina son las 13:20 Hs. tengo que salir a la calle y sinceramente no dispongo de tiempo, no lo tomes como una promesa pero si regreso temprano veo de prepararte un mini ejemplo con la idea base, mientras lo voy pensando...

Saludos!
.
moritz
Ok dios_ohm
.
Mientras, voy viendo lo de variar la fuente. Ya modifiqué las mayúsculas a minúsculas y añadí " Á É Í Ó Ú" al restrict del campo de texto de entrada, . Al ejecutar el juego da igual que lo escriba con o sin la tecla de mayúsculas activada. Se escribe bien de las dos formas, pero si lo hago con las mayúsculas activadas me lo cuenta como error. Puede que sea porque la(s) palabra(s) con la que se compara la respuesta están en minúsculas. Voy a añadirle la opoción de pasar lo escrito en mayúaculas a minúsculas para luego compararlo...


Un saludo
Moritz.
moritz
Hola dios_ohm:

Continuando con lo que te dije en el post anterior y añadiendo:

onSelfEvent (keyPress("<Enter>")) {

if (respA.text == "diecisÉis") {
respA.text = "dieciséis";
}
if (respA.text == "veintidÓs") {
respA.text = "veintidós";
}
if (respA.text == "veintitrÉs") {
respA.text = "veintitrés";
}
if (respA.text == "veintisÉis") {
respA.text = "veintiséis";
}



Todo funciona perfectamente, da igual que esté o no activada la tecla de mayúsculas.
Cuando termine de arreglarlo te envío una copia.
De todas formas, si encuentras otra solución, se agradece. Es bueno ver otras formas de resolver el problema.
Un saludo
Moritz.
dios_ohm
Hola Moritz, anoche lo dejé por la mitad y recién hoy, con la mente más despejada, pude terminar de redondear la idea, no sé si perfecto pero funciona, seguramente habrá que pulir un poco el código pero detecta si está o no pulsada la tecla de bloqueo de mayúsculas tanto al comienzo como en medio de la ejecución:









Ver ampliado (+)

Aquí te adjunto un archivo .txt con el código utilizado en el ejemplo (realizado con Swishmax 3) ya que de momento no tengo instalado el Swishmax 1 en mi PC, pruébalo y cualquier cosa coméntanos.

Saludos!
.

Edito: Veo que casi nos cruzamos en línea, no hay dudas respecto a tu solución sólo que se me hace muy trabajoso el hecho de reescribir todo el código del archivo, intenta con lo que te he dejado a ver como se fusiona con lo que tienes hecho y no dejes de comentar, desde yá que cuando lo tengas listo QUIERO el Up del archivo del juego biggrin.gif
moritz
Hola dios_ohm:



Gracias por tu trabajo y por las molestias que te has tomado.
Voy a bajar tu archivo y adaptarlo a mi juego. Como tú dices, es muy liosa mi opción. Resulta fácil para números de dos o tres cifras, pero cuando se trate de números de 6, 7, 8, ó 9 cifras, resulta complicado arreglar todas las variaciones que contienen las palabras dieciséis, veintidós, veintitrés y veintiséis.


Ya te contaré.
Y de nuevo gracias por tu trabajo.
Un saludo
Moritz.
cancrexo
Hola. NO se si me he perdido algun mensaje con información relativa a la duda que se está planteando aquí. Si es así, presento mis disculpas por adelantado smilies (4).gif .

Problema: deseas que siempre se escriba en mayúsculas usando fuentes incrustadas en el swf.

Posibilidad 1: Utiliza la propiedad restrict
El problema estribaría en si la fuente que has definido para el campo de texto tiene o no definidos los glifos correspondientes a los caracteres latinos (eñes, tildes diéresis, etc). Podrías retocar la fuente con algún programa tipo Font Editor o similar y una vez hecho esto, bastaría con aplicar restrict a los campos de texto en cuestión

Posbilidad 2: detección del estado de la tecla Mayúsculas.
Lo suyo sería crear un listener y asociarlo al evento keyDown o mejor aún crear un mc que detecte el estado de la bendita tecla y si está activa que ese mc no nos deje hacer nada hasta que se pulse de nuevo la susodicha. Adjunto ejemplo en Swishmax 1 (La verdad es que alucino con la cantidad de gente que aún usa esta versión biggrin.gif )
moritz
Hola cancrexo:

¿Puedes comprobar el archivo? a mi me da error y no se puede abrir.



No, no te has perdido mucho. Tengo tan poca idea que puedes dar la vuelta al mundo que cuando llegues no he doblado la primera esquina. biggrin.gif

Lo de la fuente ya lo arreglé con Font Creator y las puse todas en minúsculas. Pero como lo que se escribe se compara con la que debería ser correcto para darlo o no por válido, al escribirlo en las supuestas mayúsculas da error. Debe ser que cada letra mayúscula reconvertida en minúscula ha de tener un código específico que la delata como mayúscula y al hacer la comparación lo da como erróneo. Como para evitar esto tendría que poner las dos opciones para ser comparadas, y dado que son muchas las combinaciones, he desistido por ese camino.


Voy a descargar tu ejemplo a ver que tal me va.
Un saludo y gracias.

P.D. Pues por lo que a mi respecta, me quedo en swishmax 1. Bastante me ha costado aprender a golpes las cuatro tonterías que sé, como para meterme con otras versiones que han cambiado tanto que más me parece flash que el supuestamente simple e intuitivo swishmax. wacko.gif


Moritz.
moritz



Hola dios_ohm.

Te adjunto una beta de dos cifras para ver si me puedes adaptar tu arreglo. Lo he intentado pero me sobran tornillos... wacko.gif

Un saludo
Moritz.
cancrexo
Hola
El archivo está correcto. Vuelve a bajarlo y asegurate de tener la última version del SM1 (2007.05.24 si no me equivoco)

Salu2
dios_ohm
CITA(moritz @ 30-07-2010 - 08:07 PM) *
Hola dios_ohm.

Te adjunto una beta de dos cifras para ver si me puedes adaptar tu arreglo. Lo he intentado pero me sobran tornillos... wacko.gif

Un saludo
Moritz.


Hola Moritz, recién he descargado tu archivo, entre hoy y el lunes lo veo en detalle así te comento, y... vamos hombre!, no te resistas al cambio que Swishmax3 no muerde, por el contrario biggrin.gif

Saludos!
.
Edito: Espera para modificar la fuente, es probable que no sea necesario.
.
moritz
Hola cancrexo:

He adaptado tu ejemplo al de los números y funciona bien en algunas pantallas, pero en las que tienen el CreateTextfield se queda por detrás y permite seguir escribiendo en el campo. Creo que es por algo de la profundidad que tiene el código.
¿Hay alguna forma de que el mensaje se pueda poner un nivel por encima de este campo?
O por el contrario, ¿se puede bajar la profundidad para que el mensaje quede por arriba?


Un saludo
Moritz.
cancrexo
Prueba a calcular la maxima profundidad disponible y situalo ahí. En el mc tapa pon este código en el enterframe:
CÓDIGO
onEnterFrame(){
   if(_root.estamosJugando){
      
      // Solo comprueba cuando estamos jugando
        
    if(Key.isToggled(Key.CAPSLOCK) && !this._visible){
        // Calcula profunidad máxima disponible
        p = _root.getNextHighestDepth();
        this.swapDepths(p);
        this._visible = true;  trace("Activando aviso");
      
    }else if(!Key.isToggled(Key.CAPSLOCK) && this._visible){
      
        this._visible = false; trace("Desactivando aviso");
    }
   }
  
  
}


A ver si chusca.

Salu2
moritz


Hola cancrexo.

Le he cambiado el código pero no funciona. Te adjunto el swi (SMax 1) por si le puedes echar un vistazo.

Un saludo
Moritz.
dios_ohm
Hola Moritz, retrasado en función de mi promesa pero con novedades, la única salvedad creo que es el número de respuesta ya que se vé afectado según las veces que resulte pulsada la tecla de bloqueo de mayúsculas una vez que la película pasa la Escena 71; por lo poco que pude ver la variable gg en el campo de texto pregunta es la que determina dicho número así que la solución no es definitiva debido a que deberías modificar tu código para poder implementarla, te adjunto en un comprimido .rar el ejemplo realizado en Swishmax3 juntamente con la exportación y seis archivos de texto, uno para cada una de las modificaciones a realizar en los diferentes códigos, espero que te resulte de utilidad.








Ver ampliado (+)



Saludos!
.
moritz
Hola dios_ohm:

Muchas gracias por el trabajo y por las molestias que te has tomado.
He probado lo que has hecho y funciona muy bien.

¿Te refieres a que cada vez que se pulsa la tecla de mayúsculas cuenta una pregunta más?
Al entrar en la Escena se hace gg=gg+1.
Por tanto cuando se pulsa la tecla de mayúsculas y sale el mensaje de rror, sólo ha de tener ahí un gg=gg-1. Creo. unsure.gif


Un saludo
Moritz.
moritz


Hola cancrexo:

He hecho unos cambios, entre ellos que al presionar la tecla de mayúsculas te envíe a una pantalla de aviso, y no que dé el aviso en cada pantalla. Así evito que el campo del CreateteTextfield aparezca superpuesto al mensaje.
Si quieres pongo el resultado.
Gracias por la colaboración.


Moritz.
dios_ohm
Hola Moritz, por nada, todo sea por verle la cara de sorpresa al pequeño saltamontes queriendo volver a copiar y pegar las respuestas biggrin.gif y si, me refiero exactamente a eso de que cuenta una pregunta más en cada oportunidad de error, si bien creo que no afecta los resultados no deja de ser un detalle, en verdad no me he interiorizado mucho en el resto del código y por ende no tengo idea acerca de en que parte del mismo aplicarías lo que me comentas respecto a restar una pregunta cada vez que se pulse la tecla de bloqueo de mayúsculas, ya nos comentarás...

Saludos!
.
moritz
Hola dios_ohm:

Después de mucho intentarlo con SWMAx1 he tenido que pasar el proyecto al SWMAx 3 porque algunas ordenes no iban bien en la versión antigua.
He adaptado tus indicaciones y al final parece que funciona como pretendía.
Muchas gracias por las molestias tomadas y por tu interés.


Un saludo
Moritz.
Esta es una versión "reducida (lo-fi)" de nuestro contenido. Para ver la versión completa con mas información, formato e imágenes, por favor haz click aquí.
Invision Power Board © 2001-2012 Invision Power Services, Inc.