Comunidad de diseño web y desarrollo en internet online

Prototype para escribir un texto de forma aleatoria en Flash

A petición de un usuario hice este pequeño prototype todavía sujeto a arreglos y optimizaciones. Lo que hace principalmente es llenar un TextField con un texto específico pero con un efecto de aleatoriedad. Para utilizarlo se debe hacer de la manera siguiente:

Código :

//---Prototype de rellenar el texto
TextField.prototype.fillRandomText = function(theText:String, cantidad:Number, veces:Number):Void{
   
   //---Decalaración de variable
   var txt:TextField = this;
   var secFin:Number = 0;
   var rand:String;
   var sum:Number = 0;
   var avance:Number = 0;
   
   //---Funcuión de crear caracteres aleatorios
   var randomChar:Function = function (numero:Number):String{
      
      var sum:Number = 0;
      var rand:Number;
      var randChar:String;
      var chars:String = "";
      
      while(sum < numero){
         
         rand = Math.round(Math.random() * 94 + 33);
         randChar = String.fromCharCode(rand);
         
         chars += randChar;      
         sum++;
         
      }
      
      return chars;
      
   }
   
   //---Función de rellenar
   var fillChars:Function = function():Void{
      
      //---Asignar el texto
      rand = theText.slice(0, secFin) + randomChar(avance - secFin);      
      txt.text = rand;
      
      //---Detener el intervalo
      if(secFin >= theText.length){
            
         clearInterval(intervalo);
            
      }
      
      avance += (avance < theText.length) ? cantidad : 0;
      
      sum++;
      
      if(sum == veces){
         
         sum = 0;
         secFin += cantidad;
         
      }
      
   }
   
   //---Hacer el setInterval
   var intervalo:Number = setInterval(fillChars, 10);   
   
}


Su uso:

Código :

TextField.fillRandomText(frase:String, incremento:Number, veces:Number);


Donde frase es el texto que se va a insertar.
incremento es cada cuantos caracteres se va a ir deteniendo el efecto.
y veces es el número de caracteres aleatorios que se generarán antes de poner el carácter que le corresponde.

Un ejemplo sencillo es este, en un documento nuevo de 30fps, pegar el prototype en el primer frame y crear un TextField con nombre de instancia "campo", al tener hecho esto situar en el frame donde se encuentra el TextField:

Código :

campo.fillRandomText("Prueba de texto aleatorio", 1, 5);


Si alguien puede aportar más a este proto, variarlo u optimizarlo más, será bienvenida su propuesta, el resultado nos servirá a todos. ;)

¿Sabes SQL? ¿No-SQL? Aprende MySQL, PostgreSQL, MongoDB, Redis y más con el Curso Profesional de Bases de Datos que empieza el martes, en vivo.

Publica tu comentario

El autor de este artículo ha cerrado los comentarios. Si tienes preguntas o comentarios, puedes hacerlos en el foro

Entra al foro y participa en la discusión

o puedes...

¿Estás registrado en Cristalab y quieres
publicar tu URL y avatar?

¿No estás registrado aún pero quieres hacerlo antes de publicar tu comentario?

Registrate