¿Quieres registrarte?

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

18 de Febrero del 2007
48,840 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 ^^

Enviar a twitter Enviar a facebook


También te interesa


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 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
me gusta este programa siiiiiiiiiiiii
Por: lucas -blog
como te lllamas¡
Por: laura bellido seda-blo
las mates son aburridas las odio tanto que
se irian al infierno
Por: deku-blog
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
Muy bien código! ;)
Por: nestorrente
multitarea porque nos permite trabajar con varias aplicaciones al mismo tienpo,
facil de instalar un dispositivo panel de control,
GRAFICADOR DE WINDOWS
aplicacion nos permite realizar los diferentes dibujos, los cuales puedenser retocados y realizar un montaje de formas simple pero con muy baja calidad de resolucion la cualidad de esta aplicacion es que el usuario para trabajar con los colores que pueda proyectar windows.
ELEMENTOS DE LA VENTANA DE PAINT
1.barra de titulo
2.cuadro de control
3.menu de control
4.barra de menu
5.barra de herramientas
6.cuadro de colores
7.barra de desplazamiento horizontal y vertical.
EL SCANDISK
esta herramienta permite corregir errores fisicos que se encuentran en las unidades de discos.DISCOS FLEXIBLES DISCOS DUROS ETC.
DESFRAGMENTADOR
en cada cierto periodo a las unidades de disco ya sean discos flexibles o disco s duros es recomendable utilizar el desfracmentador,ya que con esta herramienta se lograra que los archivos esten de manera ordenador,permitiendo de esta forma la lectura mas rapida de los archivos.
PASOS PARA FORMATEAR UN DISQUETTE
son los sgtes
1.en las unidades que aparece en la parte izquierda de la ventana del explorador de windows seleccionar la unidad a formatear.
2.una vez seleccionamos la opcion formatear.
2.una vez seleccionado hacemos un clip derecho y en el menu contextual seleccionamos la opcion formatear.
3.presionar el boton iniciar,en caso contrrio si uno desea formato rapido hacer un check en la opcion formato rapido y luego precionar el boton inicial.
Por: elena-blog
Deja un comentario
IMPORTANTE

Este mensaje ha sido cerrado; si deseas participar en la discusión o hablar de otro tema relacionado, hazlo en los foros de Cristalab