Sentient 6 0 Denunciar post Postado Janeiro 12, 2008 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
Sentient 6 0 Denunciar post Postado Janeiro 12, 2008 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