Prototype para escribir un texto de forma aleatoria en Flash
Sábado, Septiembre 20th, 2008A 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.
