Rendering avanzato del testoFlash Player 9 e versioni successive, Adobe AIR 1.0 e versioni successive ActionScript 3.0 fornisce una vasta gamma di classi nel pacchetto flash.text per controllare le proprietà del testo visualizzato, tra cui i caratteri incorporati, le impostazioni dell'antialiasing, il controllo del canale alfa e altre impostazioni specifiche. La Guida di riferimento di ActionScript 3.0 fornisce descrizioni dettagliate di queste classi e proprietà, tra cui le classi CSMSettings, Font e TextRenderer. Uso dei caratteri incorporatiQuando si specifica un carattere specifico per un TextField nell'applicazione, Flash Player o AIR cercano un carattere dispositivo (cioè un carattere che risiede sul computer dell'utente) con lo stesso nome. Se non lo trova sul sistema o se l'utente ha una versione leggermente diversa del carattere con tale nome, la visualizzazione del testo può apparire molto diversa da quella progettata. Per garantire che l'utente veda esattamente il carattere corretto, è possibile incorporarlo nel file SWF dell'applicazione. I caratteri incorporati offrono una serie di vantaggi:
La principale limitazione derivante dall'uso dei caratteri incorporati consiste nel fatto che aumentano le dimensioni del file o le dimensioni di scaricamento dell'applicazione. Il metodo per incorporare un file di carattere nel file SWF dell'applicazione varia a seconda dell'ambiente di sviluppo. Una volta incorporato un carattere, è possibile fare in modo che un TextField utilizzi il carattere incorporato corretto:
Incorporamento di un carattere in FlashFlash Professional consente di incorporare quasi tutti i caratteri installati nel sistema, compresi i caratteri TrueType e Type 1 PostScript. È possibile incorporare i caratteri in un'applicazione con diversi metodi. Di seguito ne sono descritti alcuni.
Per ulteriori dettagli su come incorporare i caratteri nelle applicazioni, consultate “Caratteri incorporati per i campi di testo dinamico o di input” nella guida Uso di Flash. Incorporamento di un carattere in FlexÈ possibile incorporare i caratteri in un'applicazione Flex con diversi metodi. Di seguito ne sono descritti alcuni.
È possibile incorporare direttamente in un'applicazione Flex soltanto caratteri TrueType. I caratteri con altri formati, ad esempio Type 1 Postscript, possono essere incorporati in un file SWF mediante Flash Professional e il file SWF può quindi essere utilizzato nell'applicazione Flex. Per ulteriori dettagli sull'uso nelle applicazioni Flex dei caratteri incorporati dai file SWF, vedete “Incorporamento dei caratteri dai file SWF” nel manuale Uso di Flex 4. Controllo della precisione, dello spessore e dell'antialiasingPer impostazione predefinita, Flash Player e AIR determinano le impostazioni per i controlli di visualizzazione del testo come la precisione, lo spessore e l'antialiasing quando il testo viene ridimensionato, cambia colore o viene visualizzato su vari sfondi. In alcuni casi, ad esempio in presenza di testo molto piccolo o molto grande o di testo su una gamma di sfondi univoci, è possibile controllare queste impostazioni. Potete ignorare le impostazioni di Flash Player o AIR mediante la classe flash.text.TextRenderer e le classi associate, come la classe CSMSettings. Queste classi forniscono un controllo preciso sulla qualità di rendering del testo incorporato. Per ulteriori informazioni sui caratteri incorporati, consultate Uso dei caratteri incorporati. Nota: la proprietà flash.text.TextField.antiAliasType deve contenere il valore AntiAliasType.ADVANCED per consentire di impostare la precisione, lo spessore o la proprietà gridFitType o per utilizzare il metodo TextRenderer.setAdvancedAntiAliasingTable().
L'esempio seguente applica delle proprietà personalizzate di modulazione continua del tratto (CSM, Continuous Stroke Modulation) e di formattazione al testo visualizzato mediante un carattere incorporato di nome myFont. Quando l'utente fa clic sul testo visualizzato, in Flash Player o Adobe AIR vengono applicate le impostazioni personalizzate: var format:TextFormat = new TextFormat();
format.color = 0x336699;
format.size = 48;
format.font = "myFont";
var myText:TextField = new TextField();
myText.embedFonts = true;
myText.autoSize = TextFieldAutoSize.LEFT;
myText.antiAliasType = AntiAliasType.ADVANCED;
myText.defaultTextFormat = format;
myText.selectable = false;
myText.mouseEnabled = true;
myText.text = "Hello World";
addChild(myText);
myText.addEventListener(MouseEvent.CLICK, clickHandler);
function clickHandler(event:Event):void
{
var myAntiAliasSettings = new CSMSettings(48, 0.8, -0.8);
var myAliasTable:Array = new Array(myAntiAliasSettings);
TextRenderer.setAdvancedAntiAliasingTable("myFont", FontStyle.ITALIC, TextColorType.DARK_COLOR, myAliasTable);
}
|
|