Habiendo observado que había una gran cantidad de post preguntando cómo llenar un cuadro de texto letra a letra, se me ocurrió crear una función para realizar esa misma tarea.
La función permite crear aplicaciones simples como ésta (el botón escribir escribe el texto que aparece en el campo, además, este campo se vuelve editable cuando la función termina de escribir):
La función que logra esto (Código abajo) tiene 5 parámetros que, en orden son:
texto: El texto a escribir debe ser un String (si, se pueden usar variables y la constante newline)
campo: El campo de texto en el que se va a escribir (es decir, el nombre de instancia)
intervalo: Los milisegundos que pasan entre cada carácter escrito.
primeraLetra: Una variable booleana que indica si la primera letra es escrita en seguida o si debe esperar.
formato:[/b] El formato que se le quiere aplicar al texto en caso de querer hacerlo en forma dinámica.
Explico el cuarto parámetro, si el tiempo entre letra y letra es de 1000 milisegundos y primeraLetra es false, entonces, habrá que esperar 1 segundo antes de que la primera letra aparezca; si es true, aparece al ejecutarse la función.
Si no me explico bien, prueben usar la función y cambiar el valor de primeraLetra con un intervalo elevado (1000 o más milisegundos).
Es muy importante saber que la función define una variable para el campo de texto sobre el que etá escribiendo que es, justamente, escribiendo. Ésta variable debería ser usada para determinar si estamos escribiendo en ese campo de texto en particular ya que la función falla si tratamos de usarla 2 veces en el mismo campo al mismo tiempo.
Ahora, el código de la función:
Código :
escribir = function (texto:String, campo:TextField, intervalo:Number, primeraLetra:Boolean, formato:TextFormat) {
//
// Creamos el Array a partir del texto
campo.arrayLetras = texto.split("");
campo.escribiendo = true;
//
// Creamos la función que pone las letras una por una
nuevaLetra = function () {
if (campo.letra == undefined) {
campo.i = 0;
} else {
campo.i++;
}
if (campo.i == campo.arrayLetras.length) {
clearInterval(campo.nuevoIntervalo);
campo.letra = undefined;
campo.escribiendo = false;
} else {
if (campo.arrayLetras[campo.i] == " ") {
campo.i++;
campo.letra = " "+campo.arrayLetras[campo.i];
} else {
campo.letra = campo.arrayLetras[campo.i];
}
campo.text += campo.letra;
campo.setTextFormat(formato);
}
};
if (primeraLetra) {
nuevaLetra();
}
//
// Creamos el intervalo que llama a la función "nuevaLetra"
campo.nuevoIntervalo = setInterval(nuevaLetra, intervalo);
};
Por ejemplo, con el siguiente código, llamamos a la función para 2 campos de texto, campoTexto1 y campoTexto2:
Código :
var miTexto:String = "Función creada por Hernán Rivas \n hernanrivasacosta@gmail.com";
escribir(miTexto, campoTexto1, 30, false);
var miOtroTexto:String = "El anterior es un ejemplo de multilinea";
escribir(miOtroTexto, campoTexto2, 60, false);
Hola soy nueva en esto parte del código no lo entiendo, por ejemplo: campo.letra es una propiedad de la caja de texto campo pero donde se define que es el text de campo se llama letra?, acaso es una clase que se crea?
Gracias. Por:Lunatrece_blog
muy buen ejemplo, busacre la utilidad Por:jomajudo_blog
Muy bueno!!! Muchas Gracias! Por:Luis_blog
Lunatrece_blog :
campo.letra es una propiedad de la caja de texto campo pero donde se define que es el text de campo se llama letra?, acaso es una clase que se crea?
No, campo.letra es una propiedad que indica cuál es la letra que la función debe escribir en ese momento. Después, en ésta línea:
Código :
campo.text += campo.letra;
se agrega esa letra al campo de texto. Por:HernanRivas
queria hacer eso, entre aca y oh! ahi estaba; has sido esnviado por el Cielo Por:n/n_blog
un tutorial muy útil, pero podrías adjuntar el archivo de ejemplo para entender mejor el tutorial?
gracias Por:cgomez_blog
Estaba probando a ver si tiraba cuando el texto mide más de una línea, creo que vale con:
campoTexto1.autoSize=true;
Aunque hace un pequeño salto al cambiar de línea Por:Comet!_blog
no se a ustedes pero cuando pongo el ejemplo en un flash, se tarda aaaaños en compilar... hay algo en el codigo que hace que mi maquina se tarde en procesarlo. A alguien mas le pasa? Por:Acreonte_blog
cgomez_blog :
un tutorial muy útil, pero podrías adjuntar el archivo de ejemplo para entender mejor el tutorial?
gracias
Éste es el .fla del archivo que posteé como ejemplo. Por:HernanRivas
muy buen tutorial antes tenias que hacerlo manualmente ... Por:Runnerk_blog
muchas gracias por el .fla Por:cgomez_blog
Excelente ejemplo Gracias Por:G Creator_blog
una pregunta ¿Cómo podría hacerse para que leyera un archivo externos y así aplicarle el efecto a dicho archivo, por ejemplo un .txt o .xml? Por:torrealbaruben
En realidad, es lo mismo. A la función le pasas una variable, que es el texto que querés escribir. Esa variable la podés tomar de un txt o de un xml o de un php. Es lo mismo. Por:HernanRivas
no entiendo nada acerca de pascal Por:jennifer_blog
Y yo no toco sé tocar el violín.
Esto no está hecho en Pascal, está hecho en un código que ni siquiera se le parece en la estructura. Por:HernanRivas
Muy Bueno, y gracias por el .fla Por:bicho_O
disculpen me gustaria saber si se lo podria adaptar para un archivo en el cual gargo un xml y presentar los nodos que estan en las etiquetas... gracias Por:Joparoto_blog
Si, no debería haber problema. El tema es que le pases el texto del xml como string a la función y listo. Por:HernanRivas
un buen establecimiento de comentarios Por:mariela _blog
como se entra xra escribir y despues imprimir Por:anonimo_blog
muchisimas gracias llevaba tiempo detras de algo parecido Por:erotuni_blog
Hernan, no había visto el tip hasta ahora y deja que te felicite. Por:One
disculpen hasta horita bi lo importante de que no podia escribir todo con mayuscula disculpen mil disculpas ¡gracias¡ Por:diana y morena atre
La letra A es la primera letra del abecedario Por:Letra A_blog
muchas gracias Por:nano el psicologo informa
Como sería para hacer que lo hiciera por palabras?? Por:terzer
Simple, modificás la función para que el split (en la segunda línea de la función) separe de acuerdo a los espacios en lugar de letra a letra. Por:HernanRivas
para mis amigos esto va con mucho cariño para todos ustedes , les deseo lo mejor del munod y que sean feliz Por:la chica solotaria
bueno la pelicula fue buena y excitosa me gusto mucho por era de bampiro Por:bleis cuatro_blog
una pregunta se puede utilizar el comando If con letras en ves de numeros por ejemplo if(n=E) el n es un codigo que puede ser E o D se puede hacer eso? Por:facundo_blog
soi anna me gusta las muñecas Por:anna_blog
Muy buena función, hace tiempo cree una pero nada comparada con esta felicidades. Por:flashreloco
Esta pagina esta muy bien porque les los comentarios de la gente ademas ,esta muy bien porque aprendes como se debe escribir. FELIZ NAVIDAD A TODOS!!!!!!!!!!!!!!!!!!! Por:gatita_blog
hola como estas te sientes bien feliz año nuevo te deseo mucha felizida ok grasias att tu amiga que te quieres mucho Por:calmen_blog
joniiii Por:joni_blog
hola amigos esto es algo que estaba buscando esta interesante, con otro que vi era una animación en el cual también se escribía y este se guardaba como notas, es como si dejaras tu firma, pero yo lo necesito para escribir algo asi como comentarios pero en flash, no se si me dejo entender. Por:jc_kiu_blog
si lo podes subir en formato mx 2004 te lo agradeceria, no entiendo porke el codigo no me marcha Por:zaantyago
Hola soy un poco novato en esto pero intento asignarle un formato de forma dinamica
y en la llamada escribir (miTexto, campoTexto, 30, textFormat);
pero no me funciona Por:mustaine
hola que tal Por:paulina rubio-blog
chido es ta muy bien eso, creo que me podra servir la logica para crear un karaoke en flash Por:pako-blog
recuerda ser respetuoso,no insultes a otras perpersonas,ni uses palabrotas,hay una persona al otrolado de la pantalla.
habla bien.NO ESCRIBAS TODO EN MAYUSCULA ,no escribas como en SMS,evita cosas como Por:roy alex aldo-blog
¿Como ago para bajar letras? bueno les dejo mi msn asi el que me pueda contestar me dice donde hay que ir para bajar es: florenciahatchondo@hotmail.com o divina1456@hotmail.com esos don mis msn Por:fepaaaaaa!!!!!!-blog
me encanta la musica!! es lo masssssss Por:la toto!!!!!!!!!!!!!!!!!!
hooooooooolis!!! a todos soy zaira! soy re simpatica...:)aaaaaaaa me encanta la musica obio!!!!!!!!! Por:z@ira!!!24-blog
hola!!!!!!!!!! soy zaira otra vez jaja soy de sansaaaaa entre rios........... Por:z@ira!!!24-blog
hooooooooooooooooooooooooooooooooooooooooooooooooolaaaaaa!!!!!!!!!!!!!!!!!!!!!!!!! devuelta yoooooooooooouuu... heyyyyyyy qreo q yo me estoy equivocando con lo q escribo no????? q lastima jjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!! ((((((( Por:z@ira!!!24-blog
me gusta este programa siiiiiiiiiiiii Por:lucas -blog
A
G Por:AGUANTE PEROS NOMADES-blo
TODOS USTEDES SON TARADO FEO HORRIBLES LOCOS PODRIDOS Por:AGUANTE PEROS ONMADES-blo
las mates son aburridas las odio tanto que
se irian al infierno Por:deku-blog
hola me encanta jugar a las barbie mi color favorito es el rosado soy inteligente en la libreta tengo puros 10,10,10,10,10,10,y un 9 chau nos vemos Por:lara-blog
hola me encantan mucho las cartas y avos que te gusta chau los vemos contestame Por:anto -blog
haber osea hello q es eso q bandera yo con esos conejitos yo crei q eras bonitos pero no son horribles muy simples q bandera re gas Por:JENY-LOVE-blog
TACOS MEXICANOS Por:AAAAAAAAAAAAA-blog
espero k n o senojen kiero amigos emos pork ya soyi parte de ellos kiero k me contacten porfaz me siento solo
<º))))><.....,,
bye kisses se cuidan bye Por:chh_90@hotmail.com-blog
hola a todos!!!!!! les kiero mandar un beso a todos los de sansa un beso:D Por:ana laura muller-blog
hablar a cerca de mi pasado y mi presente Por:perla-blog
esta bien por que te enseña como hacer un trabajo escrito de verda doy un buen comentari ha prendes sales vien en un trasbajo escrito ha orendi mucho grasias chao los amos mucho Por:mariamoreno-blog
es muy finio por te en seña los godio de la escritura gracias Por:mariamoreno-blog
los amo por enseñalno miln veces gracias
e Por:maria moreno-blog