Visualizzazione dei risultati da 1 a 6 su 6

Discussione: [AS3] font embed

  1. #1

    [AS3] font embed

    Ciao,
    ho fatto un sito con TextField dinamici creati via actionscript.
    Per la formattazione dei testi ho embeddato i font come segue:
    codice:
    [Embed(systemFont="Arial", fontName="myfont",
       mimeType="application/x-font", 
       fontWeight="Normal" ,
       unicodeRange="U+0020-U+00FF,U+0400-U+04FF")]
    var myfont:Class;
    Font.registerFont(myfont);
    Fino a qui tutto bene. Il problema è che se io scrivo

    codice:
    MyTextField.htmlText="Ciao mondo"
    la parola mondo non appare in grassetto perchè il fontweight "bold" non è stato caricato.

    D'altronde se mentre embeddo scrivo fontWeight="Bold" anche l parola "ciao" diventa in grassetto.

    Come faccio ad avere un comportamento corretto?

  2. #2
    Utente di HTML.it L'avatar di Sleter
    Registrato dal
    Aug 2005
    Messaggi
    465
    Ciao

    Ti riporto il codice di un esercizio che avevo fatto sullo studio della classe TextField e TextFormat.

    Credo possa esserti utile:

    Codice PHP:
    var contenuto1:String "Testo senza formattazione html" ;
    var 
    contenuto2:String "Testo con [b]formattazione[/b] html" ;

    var 
    testo:TextField = new TextField();

    testo.130;
    testo.125;

    testo.width 285;

    testo.autoSize TextFieldAutoSize.LEFT;

    testo.wordWrap true;

    var 
    formattazione:TextFormat = new TextFormat();
    formattazione.color 0x003ecc;
    formattazione.font "Verdana, Arial";
    formattazione.size 11;

    //testo.text = contenuto1;
    testo.htmlText contenuto2;

    testo.setTextFormat(formattazione);

    addChild (testo); 
    Come vedi la variabile "testo" riferita al "contenuto1" è commentata e verrà eseguito il testo.htmlText = contenuto2; (con i tag html).

    ciao

  3. #3
    grazie sleter, quello che mi scrivi è corretto ma non mi consente di includere il font (ovvero parte dal presupposto che i font Verdana e Arial siano installati sul computer di chi guarda il sito).
    Purtroppo il mio sito è stato fatto con un carattere particolare per tutta una serie di motivi (non ultimo il fatto che possiede una versione russa), per cui ho proprio bisogno di utilizzare l'embed del font.
    Non so proprio dove sbattere la capoccia...

  4. #4
    Utente di HTML.it L'avatar di Sleter
    Registrato dal
    Aug 2005
    Messaggi
    465
    Ciao

    Scusami, non avevo letto con attenzione e ho pensato che il tuo problema fosse solo quello di fare in modo che vengano eseguiti i tag html da codice AS.

    In tal caso credo che dovresti creare la classe di caratteri nel .fla ed esportarla per AS in questo modo: Nel pannellino libreria del .fla, in alto a destra c'è un'icona che apre un menù.
    Seleziona "Nuovo carattere" e nella finestra che si apre metti il nome e scegli il carattere particolare (che dovrebbe essere installato sul tuo computer e quindi disponibile nella lista).
    Fatto questo, metti la spunta su Esporta per ActionScript e dai l' OK.

    Per utilizzare il tuo carattere particolare che ora è una classe esportata per AS dovrai quindi modificare il codice così:

    Codice PHP:
    var contenuto:String "Testo con [b]incorporamento[/b] carattere particolare" 

    var 
    testo:TextField = new TextField();

    testo.130
    testo.125
    testo.width 285
    testo.autoSize TextFieldAutoSize.LEFT
    testo.wordWrap true;

    var 
    formattazione:TextFormat = new TextFormat();
    var 
    font = new Papyrus(); // creo variabile "font" da classe "Papyrus" da libreria 
    formattazione.font font.fontName // assegno a "formattazione" nuovo carattere
    font.embedFonts true // incorporo carattere 
    formattazione.color 0x003ecc;  
    formattazione.size 20
     
    testo.htmlText contenuto
    testo.setTextFormat(formattazione); 

    addChild (testo); 
    ciao

  5. #5
    Ciao,
    grazie al tuo suggerimento sono riuscito a risolvere il problema.
    Lascio la soluzione per i posteri:
    fate come vi è stato indicato nell'ultimo post di Sleter aggiungendo in libreria un nuovo font per ogni stile (bold, italic, bold+italic, ...)

  6. #6
    Utente di HTML.it L'avatar di Sleter
    Registrato dal
    Aug 2005
    Messaggi
    465
    Ciao p.turrini

    Come hai scritto, è possibile è importare l'intero set di caratteri con uno stile predefinito (bold, italic ecc...) ma questa operazione probabilmente appesantirebbe il filmato oltre il necessario.

    Utilizzando il metodo setTextFormat come nel codice sopra vengono letti e interpretati correttamente i tag html inseriti nel testo da visualizzare (testo.htmlText = contenuto; ) rendendo quindi non necessario incorporare l'intero set di carattere con il suo stile predefinito.

    Certo, poi ognuno dovrà optare per la soluzione migliore in relazione alle proprie esigenze.


    Un saluto e buon proseguimento con Flash e AS3 !

    ciao

Permessi di invio

  • Non puoi inserire discussioni
  • Non puoi inserire repliche
  • Non puoi inserire allegati
  • Non puoi modificare i tuoi messaggi
  •  
Powered by vBulletin® Version 4.2.1
Copyright © 2025 vBulletin Solutions, Inc. All rights reserved.