Pergunta

Eu estou usando um SWF externo que contenha um número de classes de fonte para carregar e registrar as fontes para o meu site flash em tempo de execução. (Exportado no painel biblioteca do Flash IDE, em seguida, registrado no script de quadro)

Neste caso particular, o SWF contém um número de diferentes pesos da mesma família. por exemplo. roman fonte, itálico, luz fonte, pesado fonte, etc ...

As fontes parecem registar bem, mas quando eu tento usar as fontes algumas das propriedades fontName dessas fontes são idênticas. Três estão aparecendo como Roman e dois como luz e um é sc luz ... Então eu fui à procura de alguns erros bobo de codificação, mas para meu espanto eu não encontrar nenhum. Os objetos de fonte corretos foram carregamento na ordem correta.

Depois de um pouco de testes que fiz a minha pasta de fontes (Vista). Quando eu abri o arquivo de Heavy o título em programas visualizador de fonte Roman; os títulos em visualizador de fonte combinado que eu estava ficando em flash. Este comportamento parece ser exclusivo para esta fonte.

Desde fontName é a única maneira que eu sei como atribuir uma fonte para um TextField Estou perplexo de como eu posso usar essa fonte linda pesado para os meus títulos dinâmicos!

É uma fonte tipo 1

Alguém pode sugerir uma causa, solução ou uma solução alternativa?

Foi útil?

Solução

Obrigado, eu acho que o seu direito sobre isso.

Eu fiz no entanto encontrar uma maneira de incorporar a fonte e definir o nome.

Primeiro de tudo eu usei CrossFont para converter a fonte PostScript Type 1 a um .otf

Usando o [Embed ()] recurso agora disponível em cs4, eu era capaz de usar o atributo fontFamily para definir a propriedade fontName da fonte incorporada.

No código abaixo, você pode ver que eu defina o nome para "BlaaDeeBlaa" eo TextFormat irá aceitá-lo e exibir a fonte incorporada.

[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);

NB. Apenas OpenType (.OTF) e TrueType (.ttf) pode ser incorporado usando este método

Eu estava colocado sobre esta técnica por tutorial Lee Brimelows' no GoToAndLearn

Outras dicas

Parece que é um problema com a fonte em vez de que seu software (Flash).

Se é uma fonte livre, é bem possível que o autor do font-family utilizado um tipo de letra como uma base e cópias do mesmo editado para diferentes estilos de face. Eles podem ter apenas mudou o nome do arquivo, e se esqueceu de mudar o nome interno.

Você pode ser capaz de editar os nomes yourself alguma forma, mas eu não estou muito certo sobre isso.

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