Comunidad de diseño web y desarrollo en internet online

Efectos de texto y bordeados en Actionscript

En ocasiones necesitamos usar el perfil de un texto o de un logo para trabajar sobre el con algún efecto y/o filtro.

Este código lo consigue de una forma muy simple. Toma la "sombra" por al menos 4 lados, sumándola en un bitmap de salida.

Veamos el código y unos ejemplos:

Código :

//cargamos el MC con el dibujo o texto desde la biblioteca,
// nombre Vinculación: mc_b    Nombre cargado: mc0.
attachMovie("mc_b", "mc0", this.getNextHighestDepth());
// pasar el nombre del MC a perfilar y opcionalmente un color y un grosor
// por defecto (sin pasar el parámetro) perfila en NEGRO y grueso 1)
function perfilar(mc0, color, grueso){
   bm = new flash.display.BitmapData(mc0._width, mc0._height, true,0);
   bm2 = bm.clone(); bm3 = bm.clone(); bm.draw(mc0);
   perfil = this.createEmptyMovieClip("perfil", this.getNextHighestDepth());
   perfil.attachBitmap(bm3, 0);
   perfil._x =mc0._x; perfil._y =mc0._y;
   grueso ? g = grueso : g = 1;
   for (k=0; k<360; k+=90/g){
      bm2.applyFilter(bm,bm.rectangle,null,new flash.filters.BevelFilter(-g,k,color,100,0,0,0,0,100,1,"inner",true));
      bm3.draw(bm2);
   }
   bm.dispose(); bm2.dispose();
   return (perfil);
}

//Ejemplo Base : Perfil Simple
// usamos la llamada asignándola al nombre que deseemos de MC. 
TextMCP = perfilar(mc0);
TextMCP._y=80; // colocamos el nuevo MC a nuestro gusto.

//Ejemplo de uso: Neón Intermitente.
TextMCP2 = perfilar(mc0,0xfff00ff);
TextMCP2._y = 170;
BF2=  new flash.filters.BevelFilter(2,225,0xff0000,.6,0xffffff,.8,2,2,1,1,"inner",false);
GF1 = new flash.filters.GlowFilter(0xf000f0, 1, 5, 5, 4, 1,false, false);
GF2 = new flash.filters.GlowFilter(0xff00ff, 1, 10, 10, 1.7, 5, false, false);
setInterval(neon, 500);
function neon(){random(10)<6 ? TextMCP2.filters =[GF1,BF2] :TextMCP2.filters = [GF1,GF2];}

//Ejemplo de uso: Profundidad.
for (var n=0; n<32; n++){
   ma = perfilar(mc0,0xff000000+256*256*8*n);
   ma._y = 280-n/2; ma._x = n/2;
}

//Ejemplo de uso: Aleatorio.
setInterval(aleatorio, 2000);

function aleatorio(){
   perfil.removeMovieClip()
   ma = perfilar(mc0,rd2,ld);
   rd = random(0xffffff); rd2 = random(0xffffff); ld = random(8);
   BF3=  new flash.filters.BevelFilter(ld,225,rd,.6,rd2,.8,5,2,1,1,"inner",false);
   GF3 = new flash.filters.GlowFilter(rd , 1, 10, 10, 1, 5, false, true);
   random(10)<5 ? GF3.inner= !GF3.inner : null;
   random(10)<5 ? GF3.knockout =!GF3.knockout: null;
   random(10)<5 ? BF3.type= "inner" : BF3.type = "outer";
   random(10)<5 ? ma.filters =[BF3,GF3]: ma.filters =[BF3];
   ma._y = 364;
}


Una vez comprendido el concepto de uso, se puede aplicar de múltiples maneras dependiendo tan solo de la imaginación de cada uno.

¿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

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