Domanda

Sto usando un file SWF esterno contenente un numero di classi di caratteri per caricare e registrare i caratteri per il mio sito flash in fase di esecuzione. (esportato nel pannello libreria IDE Flash, quindi registrato nello script del frame)

In questo caso particolare il file SWF contiene un numero di pesi diversi della stessa famiglia. per esempio. carattere romano, carattere corsivo, carattere leggero, carattere pesante, ecc ...

I caratteri sembrano registrarsi bene, ma quando provo ad usare i caratteri alcune delle proprietà fontName di questi caratteri sono identiche. Tre si presentano come romani e due come leggeri e uno è leggero sc ... Quindi sono andato alla ricerca di alcuni stupidi errori di codifica, ma con mio sgomento non ne ho trovati. Gli oggetti font corretti venivano caricati nell'ordine giusto.

Dopo un bel po 'di test ho controllato la mia cartella di caratteri (vista). Quando ho aperto il file per Heavy, il titolo nel visualizzatore di caratteri mostra Roman; i titoli nel visualizzatore di caratteri corrispondevano a quelli che stavo ottenendo in flash. Questo comportamento sembra essere unico per questo tipo di carattere.

Dato che fontName è l'unico modo in cui so come assegnare un carattere a un campo di testo, sono sconcertato su come posso usare quel bel carattere pesante per i miei titoli dinamici!

È un tipo di carattere 1

Qualcuno può suggerire una causa, una soluzione o una soluzione alternativa?

È stato utile?

Soluzione

Grazie, penso che tu abbia ragione su questo.

Ho comunque trovato un modo per incorporare il carattere e impostare il nome.

Prima di tutto ho usato CrossFont per convertire il carattere Postscript di tipo 1 in un .otf

Usando la funzione [embed ()] ora disponibile in cs4, sono stato in grado di usare l'attributo fontFamily per impostare la proprietà fontName del font incorporato.

Nel codice qui sotto puoi vedere ho impostato il nome su " BlaaDeeBlaa " e TextFormat lo accetterà e visualizzerà il carattere incorporato.

[Embed(source="assets/FontFileName.otf",
                            fontFamily="BlaaDeeBlaa",
                            mimeType="application/x-font")]
var BlaaDeeBlaa:Class;

var CH:Font = new BlaaDeeBlaa();

var testTxt:TextField =  new TextField();
testTxt.defaultTextFormat = new TextFormat("BlaaDeeBlaa",28,0x000000,true);
testTxt.embedFonts = true;
testTxt.text = Font.enumerateFonts(false)[0].fontName;
testTxt.autoSize = "left";
addChild(testTxt);

NB. Solo OpenType (.OTF) e Truetype (.TTF) possono essere incorporati usando questo metodo

Sono stato inserito in questa tecnica dal il tutorial di Lee Brimelows su gotoandlearn

Altri suggerimenti

Sembra che sia un problema con il carattere piuttosto che con il tuo software (Flash).

Se si tratta di un font gratuito, è possibile che l'autore della famiglia di font abbia usato un font come base e ne abbia modificato le copie per diversi stili del viso. Potrebbero aver appena cambiato il nome del file e si sono dimenticati di cambiare il nome interno.

Potresti riuscire a modificare tu stesso i nomi in qualche modo, ma non ne sono troppo sicuro.

Autorizzato sotto: CC-BY-SA insieme a attribuzione
Non affiliato a StackOverflow
scroll top