Comunidad de diseño web y desarrollo en internet online

como lograr efecto matrix...or something like that

Citar            
MensajeEscrito el 20 Sep 2008 05:42 am
en esta pagina en los botoncitos de la derecha hay un efecto raro con caracteres extraños....
como se logra?

Por ironeric23

Claber

407 de clabLevel



Genero:Femenino  

mozilla
Citar            
MensajeEscrito el 20 Sep 2008 11:27 am
Lo que hacen es crear caracteres aleatorios antes de poner el caracter que corresponde, algo como esto.

Por elchininet

Claber

3921 de clabLevel

17 tutoriales

Genero:Masculino  

Front-end developer at Booking.com

firefox
Citar            
MensajeEscrito el 20 Sep 2008 04:30 pm
estas en todas...
pero todas!!!!
que tipo :shock:
^^

Por ironeric23

Claber

407 de clabLevel



Genero:Femenino  

mozilla
Citar            
MensajeEscrito el 20 Sep 2008 05:38 pm
listo ya acomode el codigo como queria....solo que cuadno encuentra las letras sigue cambiando....cada ves menos pero sigue cambiando...hasta que si esperas un minuto cada dos segundos se mueve..pero se queda en la letra :S
posteo codigo

Código :

onEnterFrame=function(){
   aleatorio();
}
function aleatorio() {
   c1 = "e";
   c2 = "r";
   c3 = "i";
   c4 = "c";
   ex1 = 0;
   ex2 = 0;
   ex3 = 0;
   ex4 = 0;
   idint = setInterval(wordap, 1);
}
function wordap() {
   if (ex1 == 0) {
      l1 = String.fromCharCode(random(300));
      if (l1 == c1) {
         ex1 = 1;
      }
   }
   if (ex2 == 0) {
      l2 = String.fromCharCode(random(300));
      if (l2 == c2) {
         ex2 = 1;
      }
   }
   if (ex3 == 0) {
      l3 = String.fromCharCode(random(300));
      if (l3 == c3) {
         ex3 = 1;
      }
   }
   if (ex4 == 0) {
      l4 = String.fromCharCode(random(300));
      if (l4 == c4) {
         ex4 = 1;
      }
   }
   if (ex1 == 1 && ex2 == 1 && ex3 == 1 && ex4 == 1) {
      clearInterval(idint);
   }
}


lo que hay en la escena son solo los 4 textos con nombre de variable..l1,l2,l3,l4

Por ironeric23

Claber

407 de clabLevel



Genero:Femenino  

mozilla
Citar            
MensajeEscrito el 20 Sep 2008 07:43 pm
No sabía que el ejemplo que te había pasado estaba hecho de esa manera, me parece muy complicado tener todos los caracteres separados en diferentes campos de texto para poder lograr ese efecto, aparte de ocurrir lo que dices que se demora, porque hasta que no encuentra la letra no sigue.

He construido un prototype, quizás no este lo suficientemente optimizado, porque está hecho a la carrera pero creo que te servirá:

Código ActionScript :

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


Ahora imagina que tengas en la escena un TextField con nombre de instancia "campo", la manera de utilizar el proto es la siguiente:

Código ActionScript :

//---Llamar a la función
campo.fillRandomText("Prueba de texto aleatorio", 1, 5);


Y el TextField se rellenará con el texto "Prueba de texto aleatorio" (Primer parámetro), utilizando 5 caracteres aleatorios para cada espacio del texto y después que pasen estos 5 pone el caracter que le corresponde (Tercer parámetro) y avanzando de una letra en una letra (Segundo parámetro);

Espero que te sirva.

Por elchininet

Claber

3921 de clabLevel

17 tutoriales

Genero:Masculino  

Front-end developer at Booking.com

firefox
Citar            
MensajeEscrito el 20 Sep 2008 08:01 pm
wow
quedo re bonito
muchas gracias

Por ironeric23

Claber

407 de clabLevel



Genero:Femenino  

mozilla

 

Cristalab BabyBlue v4 + V4 © 2011 Cristalab
Powered by ClabEngines v4, HTML5, love and ponies.