Comunidad de diseño web y desarrollo en internet

Cómo embeber fuentes en ActionScript 3.0

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.

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