Esto es una actualización del tip Fuentes en Flash como en CSS en AS2, ahora veremos como se hace para AS3.
Código :
function getFont(list:Array, enumDeviceFonts:Boolean=false ):void { var have:Array = Font.enumerateFonts(enumDeviceFonts); for (var a = 0; a<list.length; a++) { for (var b = 0; b<have.length; b++) { if (list[a] == Font(have[b]).fontName ) { return list[a]; break; } } } return '_sans'; }
Explicación
Lo único que hice para migrar fue cambiar "TextField.getFontList" por "Font.enumerateFonts". Pero el nuevo método para obtener las fuentes ahora tiene un parámetro que le indicará si queremos listar las Fuentes del Sistema o las Fuentes que tenemos Embebidas en la Librería.Ejemplo de uso:
1. Fuentes del Dispositivo (estilo HTML)
- Colocar una caja de texto (TextField), en el escenario.
- Usar el siguiente código en el frame donde colocamos la caja de texto.
Código :
var _fontName:String = getFont(['Trebuchet MS','Arial','Helvetica'], true); clab_txt.text = "This is Cristalab!"; clab_txt.setTextFormat( new TextFormat(_fontName, 12) );
2. Fuentes Embebidas
- Colocar una caja de texto (TextField), en el escenario.
- Agregar a la libreria 3 fuentes (Trebuchet MS,Arial,Helvetica), pueden colocarles el nombre que quieran y en las opciones de vinculación marque "Exportar para Actionscript".
- Luego usar el siguiente código en el frame donde colocamos la caja de texto.
Código :
var _fontName:String = getFont(['Trebuchet MS','Arial','Helvetica']); clab_txt.text = "This is Cristalab!"; clab_txt.setTextFormat( new TextFormat(_fontName, 12) ); clab_txt.embedFonts = true;Pueden ir probando usando otras fuentes para que noten los cambios cuando falte alguna fuente.
Como pueden ver en los 2 ejemplos de uso sólo cambio un parametro en getFont y se agrego embedFonts al texto.
¿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 Mariux el 05 de Mayo de 2010
Por Martincho7 el 05 de Mayo de 2010
Gracias
Martín
Por Gz.Francisco el 05 de Mayo de 2010
Por Martincho7 el 05 de Mayo de 2010
Fuente.as
Código :
Lo usamos así:
Código :
Saludos
Martín
Por eldervaz el 05 de Mayo de 2010
Por Freddie el 05 de Mayo de 2010
eldervaz-blog :
Por eldervaz el 05 de Mayo de 2010
Por Otaku RzO el 05 de Mayo de 2010
Código :
En la PC del trabajo me muestra:
Total: 1610
-> Segundos: 0.03
En la PC de un diseñador del trabajo:
Total: 2861
-> Segundos 0.028
Como es diseñador su PC es más potente, si yo tuviera el doble de fuentes mi tiempo sería 0.06.
Según las pruebas el FlashPlayer es muy rápido para esta tarea, ni siquiera le toma medio segundo (0.5), y mejor si antes de nuestra aplicación llamamos una sola vez a esta función (o varias según los tipos de combinaciones de fuentes a usar), y usar el resultado a lo largo de la aplicación.
Ahora, lo que tu dices es cierto y se podría mejorar esta función si tuviesemos listadas todas las fuentes por defecto de cada sistema operativo (Windows, OSX, Linux, etc), y vemos cual array usar según nos diga flash.system.Capabilities.os .
Uds. decidan cual es la mejor forma .
Por Otaku RzO el 05 de Mayo de 2010
Recomendación: Administren sus fuentes con algun programa y quiten o separen las que ya no usan.
Por eldervaz el 05 de Mayo de 2010
no digo que está mal, digo que ojo con eso, el rendimiento se puede ir al tacho.
Por Otaku RzO el 05 de Mayo de 2010
eldervaz-blog :
eldervaz-blog :
eldervaz-blog :
Prueben las soluciones y formas de uso que mensione antes, hagan pruebas de rendimiento como en el de mi prueba, con más textos fuentes y, como dijo Elder, mucho cuidado con el rendimiento.
Por juanjosehzgs el 05 de Mayo de 2010
estas digievolucionando (más por la sustentación del tip)
Por AzrL el 05 de Mayo de 2010
Por M@U el 06 de Mayo de 2010
Atentamente, confundido por la tipografía.
Por bubudrc el 06 de Mayo de 2010
Por Otaku RzO el 06 de Mayo de 2010
El resultado visualmente es el mismo si piensas usarlo de una forma, pero para los que aun usan el StyleSheet les sirve más.
Pero el mayor beneficio es el ahorro en el peso de tu SWF final.
Fuentes del Sistema: usando todas las fuentes que solicitemos -> 0kb
Fuentes embebidas: por fuente desde 32kb hasta 60kb, según el tipo de fuente.
Fuente embebida directamente: por cada caja de texto con los carácteres básicos -> 13kb a más.
Por j4rk0r el 08 de Mayo de 2010
Tu sistema esta muy bien, pero para cargar en lugar de:
clab_txt.text = "This is Cristalab!";
un archivo HTML? en el cual las etiquetas <p><h1> y demás funcionen y carguen los estilos de un .css
Creo que sería perfecto de esta manera, así se podrían hacer contenidos en flash como si de una pagina XHTML se tratase, sustituyendo claro esta los <div> por textareas..
¿Alguna idea, o algún sitio donde se pueda conseguir eso?
Muchas gracias.
Por Daniel el 09 de Mayo de 2010
La pregunta es que el swf desde un primer momento lleva embebida la tipografía, o sea, que el chequeo no va a influir a en el peso a menos que el resultado del mismo sea obtener la tipografia de una biblioteca compartida o de un swf externo...
O me estoy perdiendo de algo..
Creo que la forma de utilizar la funcion para que funcione como lo hace en css es no embeber nada y que se fije si la tipografia se encuentra en el sistema del usuario y en caso de no encontrarla busque la segunda y nuevamente en caso de no encontrarla muestre la tipografia por defecto.
Por David el 28 de Septiembre de 2010