Domanda

Immagina di creare una presentazione che verrà tradotta in una dozzina di lingue diverse, comprese quelle con caratteri non latini (cinese, ad esempio). La guida di stile del marchio del cliente impone che determinati caratteri siano accettabili per alcune lingue. Il contenuto stesso deve essere esternalizzato, in modo che il testo possa essere sostituito senza mai aprire un .fla o salvare nuovamente un'immagine.

Quindi stiamo parlando di TextField dinamici, popolati da XML, con il carattere scambiato per adattarsi alle impostazioni locali dello spettatore: qual è il modo più indolore per caricare dinamicamente solo i caratteri richiesti (indipendentemente dalla dimensione del file) e applicarli come necessario? Sto cercando soluzioni utilizzando solo Flash, non Flex .

È stato utile?

Soluzione 2

Sono totalmente deluso dal fatto che nessuno lo sapesse - vabbè. Alla fine ho trovato qualcuno che aveva scritto una piccola classe per gestire il processo di caricamento dei caratteri e ho dato indicazioni su come creare i file .swfs da caricare:

Flash AS3 Caricamento caratteri

Speriamo che altre persone lo trovino utile - si è rivelato essere il proiettile magico per i miei problemi.

Altri suggerimenti

Questo è un po 'una seccatura in flash, ma è del tutto possibile. Quello che dovrai fare è "incorporare" il carattere all'interno di un file SWF separato, caricare questo file SWF dall'applicazione principale e quindi registrare anche quel carattere all'interno di tale file SWF. Ciò ti consentirà di eseguire il caricamento runtime dei caratteri. Ciò richiederà di specificare il carattere per lingua nell'applicazione o in qualsiasi file in cui memorizzi le traduzioni, il che forse non è perfetto, ma non incorpora neppure tutti i caratteri nell'applicazione principale. Ciò equivarrebbe probabilmente a centinaia di KB di caratteri caricati senza motivo.

Questo post sul blog ha una buona carrellata di quello che devi fare per farlo funzionare. L'ho fatto anch'io, quindi se sei interessato posso espandere questo post con alcuni esempi in seguito.

Bene, alcuni dovranno sapere quale lingua stai caricando. Il rilevamento automatico può essere piuttosto difficile.

Supponendo che tu sappia quale lingua è il contenuto, puoi registrare i caratteri da utilizzare in fase di esecuzione utilizzando Font.registerFont () ; Con questo puoi caricare un file SWF che contiene un carattere, registrarlo ed è disponibile per un uso futuro in tutti i campi di testo. print (" esempio di codice ");

[Embed(src="someFont.ttf", fontFamily="myFont", mimeType="application/x-font")]
private var fontClass:Class;

...

Font.registerFont(fontClass);

Nota che dovrai compilare usando il compilatore flessibile per supportare il tag Incorpora.

Inoltre, una buona utility è Font .hasGlyphs () , che puoi utilizzare per verificare se i caratteri che stai utilizzando sono disponibili in un carattere incorporato. Questo può essere usato per tornare a un font di sistema o visualizzare un avviso per te come sviluppatore (se hai dimenticato alcuni caratteri o altro). Sottoclassare TextField per eseguire automaticamente questo controllo può essere una buona idea.

Se questo sarà online, in generale l'incorporamento del cinese è qualcosa a cui dovresti pensare due volte. Incorporare tutti i caratteri aumenterà la dimensione del file molto e non ci sono comunque molti caratteri cinesi completi disponibili. La tecnica sopra è ovviamente ancora utile per molte altre lingue.

Prima di tutto, assicurati di impostare le aspettative in modo che nessuno pensi che userai i caratteri incorporati in lingue asiatiche come cinese e giapponese. A meno che non preveda di caricare diversi megabyte di glifi, utilizzerai i caratteri del dispositivo, punto e basta. Pertanto, è ragionevole disporre di linee guida su quale classe di carattere utilizzare - _sans , _serif , _typewriter o i loro equivalenti localizzati, ma non le linee guida sul carattere in sé.

In secondo luogo, in passato il mio approccio è sempre stato quello di convincere le persone che nella maggior parte dei casi probabilmente stanno meglio con i caratteri dei dispositivi. L'uso dei caratteri del dispositivo riduce i tempi di sviluppo ed evita i bug. Farà caricare più velocemente i tuoi contenuti (se sulla rete) e in quasi tutti i casi renderà più veloce. Spesso sarà anche più chiaramente leggibile.

Ai clienti piace richiedere che tutto il loro testo sia in Garamond-Extra-British o altro, ma si assicurano di conoscere i costi. Se vedono la luce, ti risparmierai un dolore significativo.

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