Cristalab

                 ¿Quieres registrarte?

Función para escribir un texto letra a letra en Flash

18 de Febrero del 2007
36,569 visitas

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:

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);

Espero les sea útil ^^


Artículos Relacionados


Etiquetas actionscript

Comentarios | Enviar un comentario
Muy bueno :D
Por: Suriv_blog
Espero les sea útil ^^
Lo será U_U. Muy bueno.
Por: Bleend
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 XD
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
Buen código (y) es muy útil
Por: Zguillez
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. :D
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 :D 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

textFormat = new TextFormat();
textFormat.bold = true;
textFormat.size = 50;
textFormat.color = 0xFF0000;

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
jbkbkbbhfh vhfcjfjjvjvbkbk hvh dfgf brggd hfjf gfvhhfh dhf gdg dgf fgfgf ghjf utg fjrh rjfht hdhd
hfgfjf dhfhf fyrrt ryhr fggf dtetf dey eruur ryry
yryh eyr yryf eeyey etev gfjxbxgn gd gs gsh shgfjd sd atstd rwhdfd fdhfzrsd fwjjggf u7rjd yfjy dydu dhyen jhfb wgyrb jd gdj cc xfj dyyd xjdkxjdh djd xhhdhhd jhdb yffy fhhd hudhte rjjf hfry jdyd hr5u
otg fjfj jjg hglkgf rgj thtj iyjg hh ghgjtutu ht tht fthyy ejg rhyr drf etgeb6e ehh qjhj edhde sjdj fjf rijhg fnfn f fmf f f gfkjherh dmjmsdhb f,mfrvg
ugu rhfh fhhc fhgydf fhh hhfh htir kjiut jyrd78bn
Por: hdgfhf -blog
como te lllamas¡
Por: laura bellido seda-blo
hh ghfuf dfgtfg drtyhd dgdgfgcgcgxcftrdfbvdxftfhgxztrd c hfgxd djryu fsdhgfuyd jhfgsugfjytfjgfiut gru jgfugf
Por: patri-blog
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
sdñpl,sp,p,woxcmd0iwwiwmso9nj`w`0w546854754kdj iuhewjd9dmnxxuhswshjshjjqwuwkh8hlhngsioxojqtf















































xdxñodlpm,ñlskldkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkedddddddddddddddddddddddddddddddddddddddddddddddduuuuuuuuuuughdfiheuidiudjn
Por: id,eowgpñpfokep´kñj-ñ
no salio nada osaa
Por: leidy viviana palacio osp
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
dejalo yo lo k kiero es escribir
Por: patri-blog
para la chica mas soltera
Por: luisin -blog
amor
Por: ok a -blog
Muy bien código! ;)
Por: nestorrente
la señora gilmari no le ayegado el resibo de el interne y le dijieron aeya q le llegaba en abril del 2009 y no le llego
Por: de la señora gilmari
Deja un comentario
IMPORTANTE

Recuerda ser respetuoso, no insultes a otras personas, ni uses palabrotas, hay una persona al otro lado de la pantalla.

Habla bien, NO ESCRIBAS EN MAYUSCULA TODO, no escribas como en un SMS, evita cosas como "ke", "x q" y demás abreviaciones.

Aquí funcionan las etiquetas de los foros, puedes usar [b] para negrita, [img] para las imágenes, [url] para los enlaces, etc.

Si tienes preguntas técnicas, envíalas mejor al foro.