martedì 18 settembre 2012

[GUIDA] Utilizzare un font embedded in AS3 con Flash

In questa guida vi spiegherò come utilizzare un font esterno a quelli predefiniti di Flash CS5, usando actionscript, in modo che sia visualizzato correttamente nel filmato .swf finale.










Innanzitutto andiamo a scaricare il nostro nuovo font da un qualunque sito che ce lo consenta, io vi consiglio dafont che ne ha veramente in abbondanza. Fatto ciò apriamolo e installiamolo (l'operazione dovrebbe essere automatica).
Ora che il font è disponibile per il nostro sistema apriamo il nostro progetto in flash, cioè avviamo Adobe Flash (la versione che uso io è la CS5 ma dovrebbe essere uguale anche per le vecchie). Clicchiamo poi con il sinistro nell'area della libreria e selezioniamo "New font".



Si aprirà una nuova finestra in cui setteremo i parametri del nostro font. Se il nuovo font che avete precedentemente scaricato è stato installato correttamente, lo troverete scorrendo la lista dei font sotto la voce Family, nella finestra che avete aperto poco fa. Supponendo che il mio nuovo font sia "Lindsey" ecco cosa avrete:



Selezionato quindi Lindsey andate a spuntare la casella "All" sotto "Character ranges:" e per questa paginata abbiamo finito. Ora, sempre nella stessa finestra in alto troverete  la sezione "Actionscript". Cliccatela e andate a modificare la parte "Linkage" mettendo in "Class", il nome che avete dato al nuovo font. Io ho lasciato Font1 che è quello di defautl quindi avrò:


NOTA: è importante che sia spuntata la casella "export for Actionscript". Sicuramente vi avviserà che la classe Font non è definita ma a noi non interessa.

Fatto questo aprite il file actionscript dove volete editare il testo che sarà scritto con il vostro nuovo font e inserite:

    import flash.text.Font;
    import flash.text.TextField;
    import flash.text.TextFieldAutoSize;
    import flash.text.TextFormat;
    import flash.text.TextFormatAlign;
    import flash.text.TextFieldType;

queste diranno a Flash di includere tutte le classi per elaborare testi, in particolare è importante text.Font.
Ora con queste poche righe di codice creeremo una textbox editabile in cui scrivere con il vostro nuovo font:

//definisco le mie nuove variabili
public var myField_txt:TextField = new TextField();
public var myFont:Font = new Font1();

//imposto il formato del testo (font,colore,dimensione)
var formatText:TextFormat = new TextFormat();
formatText.font = myFont.fontName;
formatText.color = 0x00000;
formatText.size = 19;

//Creo una casella di testo
myField_txt.autoSize = TextFieldAutoSize.LEFT;
myField_txt.type = "dynamic";  
myField_txt.embedFonts = true;
myField_txt.x = 125;
myField_txt.y = 310;
addChild(myField_txt);

//    assegno alla casella di testo il formato del testo       
myField_txt.defaultTextFormat = formatText; 

Dunque, cosa abbiamo fatto: abbiamo creato un formato per il nostro testo specificando che il font deve essere Font1 (quindi il nostro Lindsey). Abbiamo creato una textbox in cui scrivere del testo e l'abbiamo messa a video. Infine abbiamo detto che la textbox deve avere un testo che rispetti il formato che abbiamo definito sopra.

Et voilà! Semplice no?
Per qualunque dubbio lasciate un commento. 

Nessun commento:

Posta un commento