Flash Player 10 e versioni successive, Adobe AIR 1.5 e versioni successive
L'oggetto
FontDescription
viene utilizzato in combinazione con
ElementFormat
per identificare un tipo di carattere e definirne alcune caratteristiche. Queste caratteristiche comprendono il nome del carattere, lo spessore, la disposizione, il rendering, e la modalità di reperimento del carattere (dispositivo o incorporato).
Nota:
FTE non supporta i caratteri Type 1 o i caratteri bitmap quali Type 3, ATC, CID racchiusi in sfnt, o "Naked CID".
Definizione delle caratteristiche dei caratteri (oggetto FontDescription)
La proprietà
fontName
dell'oggetto
FontDescription
può essere un nome singolo o un elenco di nomi separato da virgole. Ad esempio, in un elenco del tipo “Arial, Helvetica, _sans”, il motore del testo ricerca in primo luogo “Arial”, poi “Helvetica” e infine, se non viene trovato alcuno dei due primi caratteri, “_sans”. L'insieme di nomi di caratteri comprende tre nomi di caratteri dispositivo: “_sans”, “_serif” e “_typewriter”. Essi sono associati a caratteri dispositivo specifici che variano in base al sistema di riproduzione. È consigliabile specificare nomi predefiniti simili a quelli descritti sopra in tutte le descrizioni di caratteri che utilizzano caratteri predefiniti. Se non viene specificata alcuna proprietà
fontName
, viene utilizzato “_serif” per impostazione predefinita.
La proprietà
fontPosture
può essere impostata sul valore predefinito (
FontPosture.NORMAL
) o su corsivo (
FontPosture.ITALIC
). La proprietà
fontWeight
può essere impostata sul valore predefinito (
FontWeight.NORMAL
) o su grassetto (
FontWeight.BOLD
).
var fd1:FontDescription = new FontDescription();
fd1.fontName = "Arial, Helvetica, _sans";
fd1.fontPosture = FontPosture.NORMAL;
fd1.fontWeight = FontWeight.BOLD;
Caratteri incorporati e caratteri dispositivo
La proprietà
fontLookup
dell'oggetto
FontDescription
permette di specificare se il motore del testo ricerca un carattere dispositivo o un carattere incorporato per il rendering del testo. Se viene specificato un carattere dispositivo (
FontLookup.DEVICE
), il runtime cerca il carattere nel sistema di riproduzione. La specifica di un carattere incorporato (
FontLookup.EMBEDDED_CFF
) causa la ricerca da parte del runtime di un carattere incorporato con il nome specificato nel file SWF. Con questa impostazione funzionano soltanto i caratteri CFF (Compact Font Format) incorporati. Se il carattere specificato non viene trovato, viene utilizzato un carattere dispositivo di riserva.
I caratteri dispositivo generano dimensioni di file SWF inferiori. I caratteri incorporati garantiscono maggiore fedeltà in piattaforme diverse.
var fd1:FontDescription = new FontDescription();
fd1.fontLookup = FontLookup.EMBEDDED_CFF;
fd1.fontName = "Garamond, _serif";
Modalità di rendering e approssimazione
Il rendering CFF (Compact Font Format) è disponibile a partire da Flash Player 10 e Adobe AIR 1.5. Questo tipo di rendering dei caratteri migliora la leggibilità del testo e offre una qualità di visualizzazione superiore per i caratteri di piccole dimensioni. Questa impostazione si applica soltanto ai caratteri incorporati. Questa è l'impostazione predefinita di
FontDescription
(
RenderingMode.CFF
) per la proprietà
renderingMode
. È possibile impostare questa proprietà su
RenderingMode.NORMAL
affinché corrisponda al tipo di rendering utilizzato da Flash Player 7 o versioni precedenti.
Se è selezionato il rendering CFF, una seconda proprietà,
cffHinting
, controlla il modo in cui gli steli orizzontali vengono adattati alla griglia di subpixel. Il valore predefinito,
CFFHinting.HORIZONTAL_STEM
, utilizza l'approssimazione CFF. Impostando questa proprietà su
CFFHinting.NONE
si rimuove l'approssimazione; ciò risulta utile per le animazioni e per i caratteri di grandi dimensioni.
var fd1:FontDescription = new FontDescription();
fd1.renderingMode = RenderingMode.CFF;
fd1.cffHinting = CFFHinting.HORIZONTAL_STEM;
Blocco e clonazione di FontDescription
Quando un oggetto
FontDescription
è assegnato a un
ElementFormat
, la proprietà
locked
dell'oggetto viene automaticamente impostata su
true
. Il tentativo di modifica di un oggetto
FontDescription
bloccato causa un errore di tipo
IllegalOperationError
. È consigliabile definire completamente un oggetto di questo tipo prima di assegnarlo a un'istanza
ElementFormat
.
Per modificare un'istanza
FontDescription
esistente, verificarne prima la proprietà
locked
. Se la proprietà è
true
, utilizzare il metodo
clone()
per creare una copia sbloccata dell'oggetto. Le proprietà di questo oggetto sbloccato possono essere modificate; l'oggetto può quindi essere assegnato a
ElementFormat
. Alle nuove linee create a partire dall'oggetto
TextElement
viene applicata la nuova formattazione. Le linee create precedentemente da questo stesso oggetto restano invariate.
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);
}
}
}
|
|
|