Pergunta

Imagine que você está criando uma apresentação que será traduzido em uma dúzia de idiomas diferentes, incluindo aqueles com caracteres não-latinos (chinês, por exemplo). ditames guia de estilo da marca do cliente que determinadas fontes são aceitáveis ??para determinados idiomas. -se o conteúdo é necessário para ser exteriorizada, para que o texto pode ser substituído sem nunca abrir um fla, ou re-salvando um gráfico.

Então, estamos falando dinâmica TextField s, preenchida a partir de XML, com a fonte trocados para acomodar localidade do espectador - o que é a forma mais indolor para carregar dinamicamente somente as fontes necessárias (independentemente do tamanho do arquivo), e aplicá-los como necessário? Estou à procura de soluções usando Flash apenas, não Flex .

Foi útil?

Solução 2

Estou totalmente decepcionado que ninguém sabia sobre isso - oh bem. Eu finalmente encontrei alguém que tinha escrito um pouco de classe para lidar com o processo de font-carregamento, e deu instruções sobre como criar os .SWFs por ele para carregar:

o Flash AS3 carregar fontes

Esperamos que outras people'll Isso foi útil - que acabou por ser a bala mágica para os meus problemas

.

Outras dicas

Este é um pouco de um aborrecimento em flash, mas é inteiramente possível. O que você precisa fazer é "incorporar" a fonte dentro de um swf separado, carregar este swf de seu aplicativo principal e em seguida, registrar essa fonte interior que aswell swf. Isto irá permitir que você faça o carregamento de tempo de execução de fontes. Isso vai exigir que você especifique o tipo de letra para cada idioma na aplicação ou em arquivos que você armazenar as traduções em que, talvez, não é perfeito, mas também não é a incorporação de todas as fontes em seu aplicativo principal. Isso equivaleria a, possivelmente, centenas de kb de fontes carregadas sem motivo.

Este post tem um bom resumo do que você precisa fazer para obtê-lo a trabalhar. Eu tenho feito isso mesmo também, então se você estiver interessado posso expandir este post com alguns exemplos mais tarde.

Bem, você de alguma forma tem que saber o idioma que você está carregando. Detecção automática pode ser bastante difícil.

Assumindo que você sabe que língua o conteúdo é que você pode se cadastrar fontes a serem utilizadas no tempo de execução usando Font.registerFont () ; Com isso, você pode carregar um swf que contenha uma fonte, registrá-lo, e ele está disponível para uso futuro em todos os campos de texto. imprimir ( "amostra de código");

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

...

Font.registerFont(fontClass);

Note que você terá que compilar usando o compilador flex para apoiar a tag embed.

A boa utilidade além é Font .hasGlyphs () , que você pode usar para verificar se os caracteres que você está usando são disponíveis em uma fontes incorporadas. Isto pode ser usado tanto para saltar de volta para a fonte do sistema ou exibir um aviso para você como o desenvolvedor (se você esqueceu alguns caracteres ou qualquer outro). Subclassificação TextField para fazer esta verificação automaticamente pode ser uma boa idéia.

Se isso vai ser on-line, na incorporação geral chinês é algo que você deve pensar duas vezes. Incorporando todos os personagens vai aumentar o tamanho do arquivo muito e afaik não há que muitos completas fontes chinesas disponíveis de qualquer maneira. A técnica acima é, naturalmente, ainda útil para muitas outras línguas.

Primeiro, certifique-se de definir as expectativas para que ninguém pense que você vai usar fontes incorporadas em idiomas asiáticos como chinês e japonês. A menos que você pretende carga em vários megabytes de glifos, você poderá usar fontes de dispositivo, e ponto final. Como tal, é razoável ter diretrizes em que class do tipo de letra para uso - _sans, _serif, _typewriter ou seus equivalentes localizados -. Mas não orientações sobre a fonte, por si só

Em segundo lugar, no passado, a minha abordagem sempre foi o de convencer as pessoas de que na maioria dos casos, eles são provavelmente melhor fora com fontes de dispositivo de qualquer maneira. Usando fontes de dispositivo irá reduzir o tempo de desenvolvimento e erros a evitar. Isso fará com que sua carga de conteúdo mais rápido (se através da rede), e em praticamente todos os casos, irá tornar mais rápido. Muitas vezes, será mais claramente legíveis também.

Os clientes gostam de exigir que todo o seu corpo do texto estar em Garamond-Extra-britânica ou qualquer outra coisa, mas certifique-se que eles sabem os custos envolvidos. Se eles vêem a luz, você vai salvar a si mesmo uma dor significativa.

Licenciado em: CC-BY-SA com atribuição
Não afiliado a StackOverflow
scroll top