Ir para conteúdo

POWERED BY:

Arquivado

Este tópico foi arquivado e está fechado para novas respostas.

Sentient 6

Problema com fontes - !

Recommended Posts

Pessoal, é o seguinte:

Fiz um componente em AS2, Flash 8. Tenho um parâmetro com uma listagem (array) de valores.

Em determinados valores, podemos usar colchetes para indicar que uma determinada palavra/termo será exibida em itálico.

Por exemplo:

No parâmetro com valor "Pelas [barbas] do profeta" a palavra "barbas" aparecerá em itálico e as demais palavras são exibidas normalmente.

Então fiz este código (este funciona):

 

var format1_fmt:TextFormat = new TextFormat();
format1_fmt.font = "Arial";
format1_fmt.italic = false;
var format2_fmt:TextFormat = new TextFormat();
format2_fmt.font = "Arial";
format2_fmt.italic = true;
//-------------
var texto:String = "teste [texto] italico";
var inicio:String = texto.split("[")[0];
var meio:String = texto.split("[")[1].split("]")[0];
var fim:String = texto.split("]")[1];
//trace(meio);
//-------------
this.createTextField("my_txt", this.getNextHighestDepth(), 0, 0, 300, 200);
my_txt.multiline = true;
my_txt.wordWrap = true;
my_txt.text = inicio;
var firstIndex:Number = my_txt.length;
my_txt.text += meio == undefined ? "" : meio;
var secondIndex:Number = my_txt.length;
my_txt.text += fim == undefined ? "" : fim;
var thirdIndex:Number = my_txt.length;
//-------------
my_txt.setTextFormat(0, firstIndex, format1_fmt);
my_txt.setTextFormat(firstIndex, secondIndex, format2_fmt);
my_txt.setTextFormat(secondIndex, thirdIndex, format1_fmt);

Até aí tudo bem.

O problema começou a partir do momento em que usei o embedFonts!

Fiz o seguinte:

Quero usar Arial, corpo 12. Então, adicionei na biblioteca a fonte Arial, 12, com nome Arial e com linkage Arial.

Adicionei também a fonte Arial, 12, itálico, com nome ArialItalico e linkage ArialItalico.

 

No código escrevi:

var format1_fmt:TextFormat = new TextFormat();
format1_fmt.font = "Arial";
format1_fmt.italic = false;
var format2_fmt:TextFormat = new TextFormat();
//Nova fonte aqui ------------------------------------------------>
format2_fmt.font = "ArialItalico";
//<------------------------------------------------------------------
format2_fmt.italic = true;
//-------------
var texto:String = "teste [texto] italico";
var inicio:String = texto.split("[")[0];
var meio:String = texto.split("[")[1].split("]")[0];
var fim:String = texto.split("]")[1];
//trace(meio);
//-------------
this.createTextField("my_txt", this.getNextHighestDepth(), 0, 0, 300, 200);
//Embed Fonts aqui ---------------------------------------------->
my_txt.embedFonts = true;
//<------------------------------------------------------------------
my_txt.multiline = true;
my_txt.wordWrap = true;
my_txt.text = inicio;
var firstIndex:Number = my_txt.length;
my_txt.text += meio == undefined ? "" : meio;
var secondIndex:Number = my_txt.length;
my_txt.text += fim == undefined ? "" : fim;
var thirdIndex:Number = my_txt.length;
//-------------
my_txt.setTextFormat(0, firstIndex, format1_fmt);
my_txt.setTextFormat(firstIndex, secondIndex, format2_fmt);
my_txt.setTextFormat(secondIndex, thirdIndex, format1_fmt);

Resultado:

Só aparece o texto em itálico.

 

O que que eu faço pra fazer isso funcionar???

 

Respondam! Obrigado!

Compartilhar este post


Link para o post
Compartilhar em outros sites

Resolvi!

Solução:

 

O Nome e Linkage da fonte normal NÃO pode ser o mesmo nome da fonte.

Mudei o nome E linkage de Arial para ArialNormal e funcionou.

 

Bom, espero que seja útil pra mais alguém. =D

Compartilhar este post


Link para o post
Compartilhar em outros sites

×

Informação importante

Ao usar o fórum, você concorda com nossos Termos e condições.