Archive for the ‘PORTADA’ Category

Prototype para escribir un texto de forma aleatoria en Flash

Sábado, Septiembre 20th, 2008

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. Guiño

Enviar comentario

Cómo capturar múltiples webcams con Actionscript 2 y 3

Jueves, Septiembre 18th, 2008

Hay momentos en la vida en los que las circunstancias exigen poder visualizar múltiples webcams mediante una aplicación Flash. Pues bien, antes de que ese día llegue, habrá que estar preparado.

Primero se hará el procedimiento en ActionScript 2, usando Flash 8. Los pasos en general son los mismos:

  1. Capturar las cámaras conectadas al sistema
  2. Crear un listado de las cámaras obtenidas
  3. Visualizar la cámara seleccionada

¿ Cómo reproducir lo anterior en ActionScript 2 ?

Capturar las cámaras conectadas al sistema
Flash Player nos permite usar cualquier cámara de cualquier tipo conectada al PC, siempre y cuando ésta se encuentre debidamente configurada. Para conseguir el listado completo, bastará con usar la propiedad names:

Código :

Camera.names

Crear un listado de las cámaras obtenidas
El código anterior retornará un Array con nuestra información, así que lo visualizamos a través del bonito componente List:

Código :

//capturando listado de cámaras conectadas al sistema
camaras_array = Camera.names;
if(camaras_array.length > 0){
   //recorriendo el vector con los nombres de las cámaras
   for(var c in camaras_array){
      //agregando la cámara al listado del componente
      camaras.addItem({data:c, label:camaras_array[c]});
   }
}

Visualizar la cámara seleccionada
Una vez tenemos el índice de la cámara seleccionada, se inicia la captura y puesta en escena del video:

Código :

   //el componente List se llama camaras
   var camara_cam:Camera = Camera.get(camaras.selectedItem.data);
   //vinculando la cámara seleccionada al componente de video en el escenario
   video.attachVideo(camara_cam);

Ahora en ActionScript 3 con Flash CS3

En ActionScript 3 el proceso es el mismo respetando la debida sintaxis requerida para cada paso, sin embargo los cambios específicos para cumplir el objetivo son dos:

Componente video
Para este tip se ha creado el componente vídeo de manera dinámica y se ha agregado al escenario a través de un Sprite:

Código :

   var video      :Video       = new Video();
   //definiendo el tamaño
   video.width             = 320;
   video.height             = 240;
   //contenedor para el video
   var contenedor:Sprite = new Sprite();
   //se agrega el video al contenedor
   contenedor.addChild(video);
   //se agrega el contenedor al escenario
   addChild(contenedor);
   //se ubica el contenedor dentro del escenario
   contenedor.x             = 12;
   contenedor.y             = 50;

Captura del video
Mientras que en AS2 se hacía uso del método get, en AS3 su nombre es getCamera:

Código :

   //cargando el video de la cámara seleccionada
   var camara_cam:Camera = Camera.getCamera(camaras.selectedItem.data);

Y bien, si estas porciones de código no son suficientes, aún pueden descargar los fuentes para cada versión de AS y desbaratarlos:
WebCam con AS2
WebCam con AS3

Nota :

Importante: Si se trata de webcam’s, o en general de cámaras USB, habrá que entender que cada dispositivo USB tiene un ancho de banda limitado. Por lo tanto, inicialmente no se podrá visualizar al mismo tiempo más de 1 cámara de este tipo

Enviar comentario