Pregunta

Imagine que está creando una presentación que se traducirá a una docena de idiomas diferentes, incluidos los que no tienen caracteres latinos (chino, por ejemplo). La guía de estilo de marca del cliente dicta que ciertas fuentes son aceptables para ciertos idiomas. Es necesario que el contenido en sí mismo se externalice, de modo que el texto se pueda reemplazar sin tener que abrir un archivo .fla o volver a guardar un gráfico.

Por lo tanto, estamos hablando de TextField s dinámicos, poblados desde XML, con la fuente intercambiada para adaptarse a la configuración regional del espectador. ¿Cuál es la forma más sencilla de cargar dinámicamente solo las fuentes requeridas (independientemente del tamaño del archivo), y aplicarlas como ¿necesario? Estoy buscando soluciones que utilicen solo Flash, no Flex .

¿Fue útil?

Solución 2

Estoy totalmente decepcionado de que nadie se haya enterado de esto, bueno. Finalmente encontré a alguien que había escrito una pequeña clase para manejar el proceso de carga de fuentes, y le di instrucciones sobre cómo crear los .swf para que se cargue:

Flash AS3 cargando fuentes

Espero que otras personas lo encuentren útil, ya que resultó ser la bala mágica para mis problemas.

Otros consejos

Esto es un poco complicado en flash, pero es completamente posible. Lo que deberás hacer es " incrustar " la fuente dentro de un swf separado, cargue este swf desde su aplicación principal y luego registre esa fuente dentro de ese swf también. Esto te permitirá hacer cargas en tiempo de ejecución de las fuentes. Esto requerirá que especifique la fuente por idioma en la aplicación o en los archivos en los que almacene las traducciones, lo que quizás no sea perfecto, pero tampoco incrustar todas las fuentes en su aplicación principal. Eso equivaldría posiblemente a cientos de kb de fuentes cargadas sin ninguna razón.

Esta publicación de blog tiene un buen resumen de lo que debe hacer para que funcione. También lo he hecho yo mismo, así que si está interesado, puedo ampliar esta publicación con algunos ejemplos más adelante.

Bueno, tendrás que saber qué idioma estás cargando. La autodetección puede ser bastante difícil.

Suponiendo que sepa en qué idioma está el contenido, puede registrar las fuentes que se usarán en tiempo de ejecución utilizando Font.registerFont () ; Con esto puede cargar un archivo SWF que contiene una fuente, registrarlo y está disponible para su uso futuro en todos los campos de texto. imprimir (" ejemplo de código ");

[Embed(src="someFont.ttf", fontFamily="myFont", mimeType="application/x-font")]
private var fontClass:Class;

...

Font.registerFont(fontClass);

Tenga en cuenta que tendrá que compilar usando el compilador flex para admitir la etiqueta Incrustar.

Además, una buena utilidad es Fuente .hasGlyphs () , que puede usar para verificar si los caracteres que está usando están disponibles en una fuente incrustada. Esto se puede usar para saltar a una fuente del sistema o mostrarle una advertencia como desarrollador (si olvidó algunos caracteres o lo que sea). La subclasificación de TextField para realizar esta comprobación automáticamente puede ser una buena idea.

Si esto va a estar en línea, en general, incorporar chino es algo en lo que debería pensar dos veces. Incrustar todos los caracteres aumentará el tamaño del archivo mucho y, afaik, no hay tantas fuentes chinas completas disponibles de todos modos. La técnica anterior es, por supuesto, aún útil para muchos otros idiomas.

En primer lugar, asegúrese de establecer expectativas para que nadie piense que va a utilizar fuentes incrustadas en idiomas asiáticos como el chino y el japonés. A menos que planee cargar varios megabytes de glifos, estará usando fuentes de dispositivo, punto final. Como tal, es razonable tener pautas sobre qué clase de fuente usar - _sans , _serif , _typewriter o sus equivalentes localizados, pero no directrices sobre la fuente per se.

En segundo lugar, en el pasado, mi enfoque siempre ha sido convencer a las personas de que, en la mayoría de los casos, probablemente estén mejor con las fuentes de dispositivos de todos modos. El uso de fuentes de dispositivo reducirá el tiempo de desarrollo y evitará errores. Hará que su contenido se cargue más rápido (si está en la red), y en casi todos los casos se procesará más rápido. A menudo, también será más claramente legible.

A los clientes les gusta exigir que todo el texto de su cuerpo esté en Garamond-Extra-British o lo que sea, pero asegúrese de que conozcan los costos involucrados. Si ven la luz, te ahorrarás un gran dolor.

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