Pregunta

Estoy usando un swf externo que contiene varias clases de fuentes para cargar y registrar las fuentes para mi sitio flash en tiempo de ejecución. (exportado en el panel de la biblioteca, el IDE de Flash se registra en el script de marco)

En este caso particular, el swf contiene varios pesos diferentes de la misma familia. p.ej. font roman, font italic, font light, font heavy, etc ...

Las fuentes parecen registrarse bien, pero cuando trato de usar las fuentes, algunas de las propiedades de FontName de estas fuentes son idénticas. Tres aparecen como romanos y dos como ligeros y uno es sc ligero ... Así que busqué algunos errores de codificación tontos, pero para mi consternación no encontré ninguno. Los objetos de fuente correctos se estaban cargando en el orden correcto.

Después de un poco de pruebas revisé mi carpeta de fuentes (vista). Cuando abrí el archivo para Heavy, el título en el visor de fuentes muestra Roman; los títulos en el visor de fuentes coincidían con lo que estaba recibiendo en flash. Este comportamiento parece ser único para esta fuente.

Ya que fontName es la única forma en que sé cómo asignar una fuente a un TextField, ¡me sorprende cómo puedo usar esa fuente gruesa y encantadora para mis encabezados dinámicos!

Es una fuente de tipo 1

¿Alguien puede sugerir una causa, una solución o una solución?

¿Fue útil?

Solución

Gracias, creo que tienes razón al respecto.

Sin embargo, encontré una forma de incrustar la fuente y establecer el nombre.

Primero que todo, utilicé CrossFont para convertir la fuente PostScript Tipo 1 a un .otf

Al usar la función [embed ()] ahora disponible en cs4, pude usar el atributo fontFamily para establecer la propiedad fontName de la fuente incrustada.

En el código de abajo, puedes ver que establezco el nombre en " BlaaDeeBlaa " y el TextFormat lo aceptará y mostrará la fuente incrustada.

[Embed(source="assets/FontFileName.otf",
                            fontFamily="BlaaDeeBlaa",
                            mimeType="application/x-font")]
var BlaaDeeBlaa:Class;

var CH:Font = new BlaaDeeBlaa();

var testTxt:TextField =  new TextField();
testTxt.defaultTextFormat = new TextFormat("BlaaDeeBlaa",28,0x000000,true);
testTxt.embedFonts = true;
testTxt.text = Font.enumerateFonts(false)[0].fontName;
testTxt.autoSize = "left";
addChild(testTxt);

n.b. Solo OpenType (.OTF) y Truetype (.TTF) se pueden incrustar usando este método

tutorial de Lee Brimelows en gotoandlearn

Otros consejos

Parece que es un problema con la fuente en lugar de con su software (Flash).

Si es una fuente gratuita, es muy posible que el autor de la familia de fuentes haya utilizado una fuente como base y edite copias de la misma para diferentes estilos de la cara. Es posible que hayan cambiado el nombre del archivo y se hayan olvidado de cambiar el nombre interno.

Es posible que puedas editar los nombres de alguna manera, pero no estoy muy seguro de esto.

Licenciado bajo: CC-BY-SA con atribución
No afiliado a StackOverflow
scroll top