Todos cuando trabajamos con flash, queremos poner textos especiales con diseños "bonitos", para eso usamos fuentes estáticas, pero puede darse el caso que necesitemos que sean dinámicas. A raíz de un trabajo simple, me vi en la necesidad de agregar fuentes especiales y como ya es costumbre lo hice con actionScript de la siguiente manera:
Código :
var myFormat1:TextFormat = new TextFormat(); myFormat1.font = "Brady Bunch Remastered"; //myFormat1.font = "Verdana"; myFormat1.color = 0xff0000; myFormat1.size = 22; myFormat1.align = TextFormatAlign.LEFT; var txtQuestion = new TextField(); txtQuestion.defaultTextFormat = myFormat1; txtQuestion.x = 200; txtQuestion.y = 200; //txtQuestion.rotation = 45; txtQuestion.text = "bla bla"; this.addChild(txtQuestion);
Sin embargo, se me complicó un poco el tema cuando quise rotar el texto. Y es que sucede que no podemos rotar un texto dinámico agregando la fuente de la forma que hicimos.
Para eso, junto con Zguillez nos pusimos a investigar y vimos que para eso necesitamos agregar la fuente a la librería:
Le ponemos un nombre que lo identifique
Se debe ver así en la librería
Luego, como lo necesitamos usar por código, le agrego el linkage
Y le agrego un nombre de Class
Ahora solo tenemos que crear una instancia de la clase que acabamos de crear:
Código :
var font:myFont=new myFont();
Luego en la clase TextFormat agregamos la fuente que queremos usar:
Código :
var txt_fmt:TextFormat=new TextFormat(); txt_fmt.font=font.fontName;
Para luego aplicarle el formato y embeberlo
Código :
txt.defaultTextFormat=txt_fmt; txt.embedFonts=true;
Quedando el código final, así:
Código :
import flash.text.*; var font:myFont=new myFont(); var txt_fmt:TextFormat=new TextFormat(); txt_fmt.font=font.fontName; txt_fmt.size=24; var txt:TextField=new TextField(); txt.autoSize=TextFieldAutoSize.CENTER; txt.defaultTextFormat=txt_fmt; txt.embedFonts=true; txt.text="esta es una prueba"; txt.x = 50; txt.y = 50; txt.rotation = 45; txt.selectable=false; addChild(txt);
Espero les sea útil
¿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 Zguillez el 31 de Julio de 2008
Por Gz.Francisco el 31 de Julio de 2008
y el defautTextFormat tampoco lo habia colocado yo ponia el setTextFormat.
Por aSnO® el 01 de Agosto de 2008
Lo he intentado de las siguientes formas pero no lo he logrado
esta es la primera:
var fonta:asnoOne=new asnoOne();
var txt_fmta:TextFormat=new TextFormat();
txt_fmta.font=fonta.asnoOne;
txt_fmta.size=8;
txtcontent.setStyle("disabledTextFormat", new TextFormat());
txtcontent.setStyle("textFormat", txt_fmta);
Y esta es la segunda
txtcontent.setStyle("font", fonta.asnoOne);
txtcontent.setStyle("embedFonts", true);
pero no funcionó
Por aSnO el 01 de Agosto de 2008
Creo la fuente normalmente en la librería con el nombre de linkage asnoOne
arrastro el textarea al workspace
y pongo el siguiente codigo para embeber la fuente (en mi caso una fuente pixel de tamaño 8 q funcionó perfectamente)
aquí el código:
//Embebemos las fuentes del textArea
var format:TextFormat=new TextFormat();
format.font=new asnoOne().fontName;
format.size=8;
format.color=0xFFFFFF;
txtcontent.setStyle("embedFonts", true);
txtcontent.setStyle("textFormat", format);
Espero que les sirva
Saludos
Por po110 el 01 de Agosto de 2008
Por Carlos el 12 de Agosto de 2008
Por eldervaz el 18 de Septiembre de 2008
Por Andros el 13 de Octubre de 2008
Como se puede hacer que sólo te incruste los caracteres que quieres? (como se hacia antes poniendo una caja vacía)
Por Tutan el 09 de Octubre de 2009
Por veart el 18 de Noviembre de 2009
Por lucho611 el 10 de Septiembre de 2010
Por mikele el 20 de Diciembre de 2010
Por GBVsoft el 18 de Enero de 2013
Por solisarg el 18 de Octubre de 2018
Jorge