O objeto
FontDescription
é usado em conjunto com
ElementFormat
para identificar uma face de fonte e definir algumas de suas características. Essas características incluem o nome da fonte, peso, postura, renderização e como localizar a fonte (de dispositivo versus incorporada).
Nota:
O FTE não oferece suporte a fontes de Tipo 1 ou fontes de bitmap, como Tipo 3, ATC, sfnt-wrapped CID ou Naked CID.
Definição das características da fonte (objeto FontDescription)
A propriedade
fontName
do objeto
FontDescription
pode ser um nome individual ou uma lista separada por vírgulas de nomes. Por exemplo, em uma lista como “Arial, Helvetica, _sans”, o mecanismo de texto procura, primeiro, “Arial”, em seguida, “Helvetica” e, finalmente, “_sans” se não for possível localizar as duas primeiras fontes. O conjunto de nomes de fontes inclui três nomes de fontes de dispositivo genéricos “_sans”, “_serif” e “_typewriter”. Eles mapeiam a fontes de dispositivos específicos, dependendo do sistema de reprodução. É prática recomendada especificar o nome padrão, por exemplo, os especificados em todas as descrições de fontes que usam fontes de dispositivo. Se nenhum
fontName
for especificado, “_serif” será usado como padrão.
A propriedade
fontPosture
pode ser definida como padrão (
FontPosture.NORMAL
) ou como itálico (
FontPosture.ITALIC
). A propriedade
fontWeight
pode ser definida como padrão (
FontWeight.NORMAL
) ou como negrito (
FontWeight.BOLD
).
var fd1:FontDescription = new FontDescription();
fd1.fontName = "Arial, Helvetica, _sans";
fd1.fontPosture = FontPosture.NORMAL;
fd1.fontWeight = FontWeight.BOLD;
Fontes incorporadas versus de dispositivo
A propriedade
fontLookup
do objeto
FontDescription
especifica se o mecanismo de texto procura uma fonte de dispositivo ou fonte incorporada para renderizar o texto. Se uma fonte de dispositivo (
FontLookup.DEVICE
) for especificada, o tempo de execução procurará a fonte no sistema de reprodução. A especificação de uma fonte incorporada (
FontLookup.EMBEDDED_CFF
) faz com que o tempo de execução procure uma fonte incorporada com o nome especificado no arquivo SWF. Somente fontes CFF (Formato compacto de fonte) funcionam com essa configuração. Se a fonte especificada não for localizada, uma fonte do dispositivo de fallback será usada.
As fontes de dispositivo resultam em um tamanho de arquivo SWF menor. As fontes incorporadas concedem maior fidelidade entre plataformas.
var fd1:FontDescription = new FontDescription();
fd1.fontLookup = FontLookup.EMBEDDED_CFF;
fd1.fontName = "Garamond, _serif";
Modo de renderização e instrução
A renderização de CFF (Formato compacto de fonte) está disponível a partir do Flash Player 10 e do Adobe AIR 1.5. Esse tipo de renderização de fonte torna o texto mais legível e permite maior qualidade de exibição para fontes em tamanhos menores. Essa configuração aplica-se apenas a fontes incorporadas.
FontDescription
é a definição padrão dessa definição (
RenderingMode.CFF
) para a propriedade
renderingMode
. É possível definir essa propriedade como
RenderingMode.NORMAL
a fim de corresponder o tipo de renderização usado pelo Flash Player 7 ou versões anteriores.
Quando a renderização de CFF for selecionada, uma segunda propriedade,
cffHinting
, controlará como as hastes horizontais se ajustam à grade de subpixels. O valor padrão,
CFFHinting.HORIZONTAL_STEM
, usa instrução de CFF. Definir essa propriedade como
CFFHinting.NONE
remove a instrução, que é apropriada para animação ou para tamanhos de fontes maiores.
var fd1:FontDescription = new FontDescription();
fd1.renderingMode = RenderingMode.CFF;
fd1.cffHinting = CFFHinting.HORIZONTAL_STEM;
Bloqueio e clonagem de FontDescription
Quando um objeto
FontDescription
estiver atribuído a um
ElementFormat
, sua propriedade
locked
será automaticamente definida como
true
. A tentativa para modificar um objeto
FontDescription
bloqueado emitiu um
IllegalOperationError
. A prática recomendada é definir completamente tal objeto antes de atribuí-lo a uma instância do
ElementFormat
.
Para modificar uma instância da
FontDescription
existente, primeiro verifique sua propriedade
locked
. Se estiver definida como
true
, use o método
clone()
para criar uma cópia desbloqueada do objeto. As propriedades desse objeto desbloqueado podem ser alteradas e é possível atribuí-lo à instância do
ElementFormat
. Quaisquer linhas criadas a partir desse
TextElement
terão a nova formatação. As linhas desse mesmo objeto criadas anteriormente permanecerão inalteradas.
package
{
import flash.display.Sprite;
import flash.text.*;
public class FontDescriptionCloneExample extends Sprite
{
private var tb:TextBlock = new TextBlock();
private var te:TextElement;
private var ef1:ElementFormat;
private var ef2:ElementFormat;
private var fd1:FontDescription = new FontDescription();
private var fd2:FontDescription;
public function FontDescriptionCloneExample()
{
fd1.fontName = "Garamond";
ef1 = new ElementFormat(fd);
var str:String = "This is flash text";
te = new TextElement(str, ef);
tb.content = te;
var tx1:TextLine = tb.createTextLine(null,600);
addChild(tx1);
fd2 = (fd1.locked) ? fd1.clone() : fd1;
fd2.fontName = "Arial";
ef2 = (ef1.locked) ? ef1.clone() : ef1;
ef2.fontDescription = fd2;
tb.content.elementFormat = ef2;
var tx2:TextLine = tb.createTextLine(null,600);
addChild(tx2);
}
}
}
|
|
|