moritz
27-07-2010 - 10:28 PM
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
28-07-2010 - 05:54 AM
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
28-07-2010 - 08:56 AM
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
28-07-2010 - 11:17 AM
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
28-07-2010 - 01:44 PM
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
28-07-2010 - 04:43 PM
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
29-07-2010 - 07:49 AM
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
29-07-2010 - 05:14 PM
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
29-07-2010 - 07:06 PM
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
30-07-2010 - 09:28 AM
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
30-07-2010 - 09:45 AM
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:
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
moritz
30-07-2010 - 02:45 PM
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
30-07-2010 - 06:10 PM
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
.gif)
.
Problema: deseas que siempre se escriba en mayúsculas usando fuentes incrustadas en el swf.
Posibilidad 1: Utiliza la propiedad restrictEl 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

)
moritz
30-07-2010 - 08:04 PM
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.
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.
Moritz.
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...
Un saludo
Moritz.
cancrexo
30-07-2010 - 09:02 PM
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
31-07-2010 - 01:51 PM
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...
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
Saludos!
.
Edito: Espera para modificar la fuente, es probable que no sea necesario.
.
moritz
31-07-2010 - 08:59 PM
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
1-08-2010 - 12:14 PM
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
1-08-2010 - 04:20 PM
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
4-08-2010 - 08:53 PM
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.
Saludos!
.
moritz
5-08-2010 - 06:39 AM
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.
Un saludo
Moritz.
moritz
5-08-2010 - 09:14 AM
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
5-08-2010 - 01:51 PM
Hola
Moritz, por nada, todo sea por verle la cara de sorpresa al pequeño saltamontes queriendo volver a copiar y pegar las respuestas

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
5-08-2010 - 09:01 PM
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í.