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.
Por HernanRivas el 05 de Julio de 2007
Por fughed el 18 de Diciembre de 2007
Por softlusion el 05 de Septiembre de 2008
Por SANANTO el 08 de Junio de 2009
CONFORME VEO EJEMPLOS ME MUERO DE ESA "ENVIDIA SANA".
QUIERO PONER A UN LOGO EL EFECTO QUE TESEO LE PUSO DE RELIEVE CON PROFUNDIDAD A UN BANER QUE ESTOY HACIENDO PARA UNA CONFERENCIA QUE QUIERO DAR EN SEPTIEMBRE SOBRE EL ORIGEN DE LAS CULTURAS, CON PPS
Y SOLO TENGO TUTORIALES.
EN FIN, AMIGOS, SEGUIREMOS DISFRUTANDO VIENDOOS HACER ESTAS MARAVILLAS.
Por SANANTO el 08 de Junio de 2009