• User Attivo

    Problema con campi di testo dinamici

    Salve,
    sono riuscito grazie all'aiuto del buon flep a creare una galleria fotografica interfacciando flash e mysql.

    E' tutto ok se non il fatto che non riesco a formattare le didascalie.

    Per la visualizzazione uso dei campi di testo che creo dinamicamente con questo codice

    
    _root.createTextField('my_txt'+n, _root.getNextHighestDepth(), 40, posx, posy, 20).text = dida +" - "+n;    
    
    setProperty('my_txt'+n, _y, posy+50);
    
    

    Non riesco però a trovare il modo di impostare il carattere ed il colore del campo di testo.

    Qualcuno sa aiutarmi?


  • Super User

    Ciao nedone,
    devi usare la classe textFormat.

    Un esempio:

     var format:TextFormat;
    var field:TextField;
    
    field=_root.createTextField('f_txt',1,0,0,0,0);
    field.multiline=true;
    field.selectable=false;
    field.autoSize='left';
    field.embedFonts=true;
    field.antiAliasType='advanced';
    field.setNewTextFormat(getFormat);
    
    function getFormat():TextFormat
    {
        format=new TextFormat();
        format.font='Verdana';
        format.color=0x333333;
        format.size=20;
        return(format);
    }
    

  • Super User

    Ah, un' altra cosa...
    Tieni un campo di testo dinamico vuoto e inseriscili tutti i caratteri con l' apposito tasto / opzione.
    In questo modo Flash si porta dietro anche la font che utilizzi e chiunque la visualizzerà.
    Altrimenti non vedresti il testo.


  • User Attivo

    @Flep said:

    Ciao nedone,

    > var format:TextFormat;
    var field:TextField;
    
    field=_root.createTextField('f_txt',1,0,0,0,0);
    field.multiline=true;
    field.selectable=false;
    field.autoSize='left';
    field.embedFonts=true;
    field.antiAliasType='advanced';
    field.setNewTextFormat(getFormat);
    
    function getFormat():TextFormat
    {
        format=new TextFormat();
        format.font='Verdana';
        format.color=0x333333;
        format.size=20;
        return(format);
    }
    >```
    
    
    Ho già usato questo metodo, il problema è che devo creare x campi di testo con nomi (credo debbano essere) diversi quindi non so come applicare la text format. Forse mi ero spiegato male.

  • Super User

    Inserisci ogni campo di testo in un Array in modo che poi non lichiami coi nomi ma tramite l' indice dell' Array.
    Poi applichi il TextFormat con un ciclo.


  • User Attivo

    Tanto per cambiare continuo ad avere problemi...ActionScript sta diventando la mia bestia nera...

    creo le etichette così:

    
    etichette = Array();
    
    [...]
    
    var etitmp = _root.createTextField('my_txt'+n, _root.getNextHighestDepth(), 40, posx, posy, 20).text = dida;    
        
    setProperty('my_txt'+n, _x, posx);
    setProperty('my_txt'+n, _y, posy+50);
    etichette.push('my_txt'+n);
    
    [...]
    
    var my_fmt:TextFormat = new TextFormat();
    my_fmt.color = 0xFF0000;
        for (l=0;l<k;l++)
            etichette.setTextFormat(my_fmt);
    
    

    Dove è l'errore?


  • Super User

    var etichette:Array=new Array();


  • User Attivo

    Purtroppo non cambia niente.
    L'array veniva creato e processato anche con l'altra sintassi più beduina, il problema è che non viene applicata la formattazione.


  • Super User

    questo [...] sta per ciclo ?

    Inoltre, hai tenuto un campo di testo dinamico vuoto a cui hai inserito tutti i caratteri ?


  • Super User

    Ahh
    Un' altra cosa, ho visto adesso.

    Prima di assegnare un testo al campo devi applicargli il textFormat e poi gli assegni il testo.