• Super User

    I vantaggi sono molteplici.
    Ne elenco alcuni:

    • Flash vede un file XML come un Array, per cui puoi immagazzinare dati in Flash che poi visualizzerai in maniera semplice e pulita.
      Ad esempio, in questo XML:
    
    <?xml version="1.0" encoding="UTF-8"?>
    <root>
    <immagini>
    <img url="images/img_0.jpg" descrizione="descrizione 1"></img>
    <img url="images/img_1.jpg" descrizione="descrizione 2"></img>
    <img url="images/img_2.jpg" descrizione="descrizione 3"></img>
    <img url="images/img_3.jpg" descrizione="descrizione 4"></img>
    <img url="images/img_4.jpg" descrizione="descrizione 5"></img>
    <img url="images/img_5.jpg" descrizione="descrizione 6"></img>
    <img url="images/img_6.jpg" descrizione="descrizione 7"></img>
    <img url="images/img_7.jpg" descrizione="descrizione 8"></img>
    <img url="images/img_8.jpg" descrizione="descrizione 9"></img>
    <img url="images/img_9.jpg" descrizione="descrizione 10"></img>
    <img url="images/img_10.jpg" descrizione="descrizione 11"></img>
    <img url="images/img_11.jpg" descrizione="descrizione 12"></img>
    <img url="images/img_12.jpg" descrizione="descrizione 13"></img>
    <img url="images/img_13.jpg" descrizione="descrizione 14"></img>
    <img url="images/img_14.jpg" descrizione="descrizione 15"></img>
    </immagini>
    <opzioni>
    <velocita_timer>8</velocita_timer>
    <numero_quadratini>100</numero_quadratini>
    <colore_sfondo>0xFFFFFF</colore_sfondo>
    <descrizione>si</descrizione>
    </opzioni>
    </root>
     
    
    

    puoi crearti in Flash 2 arrays che contengono rispettivamente le path delle immagini da visualizzare e relativa descrizione.
    Se poi i tuoi livelli di programmazione sono avanzati, potresti creare un array unico bidimansionale.

    • puoi creare degli scripts lato server che fanno query al database e restituiscono i dati scrivendo un XML che Flash carica e visualizza.
    • puoi convertire fogli Excel in file XML e visualizzarli in Flash.
    • un domani il cliente necessita di un database, se hai sviluppato con flash appoggiandoti all' XML la cosa è semplice, basta trasformare l' XML che usi in tabelle mySQL
    • puoi dare attraverso un XML delle opzioni al cliente tipo colori, posizioni di oggetti, transizioni, stringhe testi...

    ... e tanto altro ...


  • User Attivo

    flep una curiosità. E' possibile lavorare ad esempio dal 5° al 20° elemento di un file xml senza importare tutti i nodi???

    Insomma una specie di query limitata. Se Provo ad immagine un xml con 1000 dati.. non so a quel punto quanto sarebbe conveniente importarli tutti. per poi sceglierne 15 di interesse. preferirei a quel punto un database MYSQL

    Approfondiro' le mie consocenze sui metodi xml che l'actionscript offre.


  • Super User

    Sicuramente l' xml va benissomo per applicazioni piccole e medie.
    Dovresti importare tutto l' xml e poi limitare il tuo ciclo con actionscript.

    Per applicazioni grandi è sempre meglio appoggiarsi a mySQL , magari gli scripts fanno le query necessarie e restituiscono a Flash i valori 🙂


  • User Attivo

    🙂 daccordissimo flep. Predilerei l'xml anche per una soluzione di customizzazione del filmato. sapresti consigliarmi qualche buon editor xml Gratuito?


  • Super User

    Gratutito che mi son trovato bene:
    http://www.xmlfox.com/


  • User

    Flep ,ho provato ... il testo si carica e tutto funziona tranne l'autodimensionabile. In width mi serve un parametro fisso per la centratura...

     
    _root.Scorre.Dinamico.createTextField('Txt_Testo',_root.Scorre.Dinamico.getNextHighestDepth(),0,0,400,0);
    
    

    ...ma se non inserisco un valore positivo adeguato in height non mi visualizza nulla perchè rimane di altezza 0. Come mai? flash 8 actionscript 2.0.
    Grazie

    PS: Ti contatto in PV al più presto.


  • Super User

    Non è necessario cheimposti un width ed un height, lo script va bene. Piuttosto, che font stai usando ? La stai incorporando nell' swf ?


  • User

    Nelle prove precedenti non dichiaravo nessun font o altro... ora ho provato a dichiarare ciò che mi serve ma ... nel debug vedo cambiare i valori delle variabili... ma il risultato non cambia.

    Tutto il codice...

     
    _root.Scorre.Dinamico.createTextField('Txt_Testo',_root.Scorre.Dinamico.getNextHighestDepth(),0,0,400,500);
    var my_lv:LoadVars = new LoadVars();
     
    my_lv.onData = function(src:String) {
     if (src == undefined) {
      trace("Error loading content.");
      return;
     }
     //Parametri casella di testo
     _root.Scorre.Dinamico.Txt_Testo.text = src;
     _root.Scorre.Dinamico.Txt_Testo.multiline = true
     _root.Scorre.Dinamico.Txt_Testo.font = "Tahoma"
     _root.Scorre.Dinamico.Txt_Testo.textHeight = 150
     _root.Scorre.Dinamico.Txt_Testo.color = 0xFFFFFF
     _root.Scorre.Dinamico.Txt_Testo.bold = true
     _root.Scorre.Dinamico.Txt_Testo.align = "center"
    };
     
    my_lv.load("Titolicoda.txt", my_lv, "GET");
    
    

    in poche parole rimane con i parametri di default... altezza 15 colore nero ecc...


  • Super User

    Scusami, non ti seguo...
    questi parametri:
    //Parametri casella di testo
    _root.Scorre.Dinamico.Txt_Testo.text = src;
    _root.Scorre.Dinamico.Txt_Testo.multiline = true
    _root.Scorre.Dinamico.Txt_Testo.font = "Tahoma"
    _root.Scorre.Dinamico.Txt_Testo.textHeight = 150
    _root.Scorre.Dinamico.Txt_Testo.color = 0xFFFFFF
    _root.Scorre.Dinamico.Txt_Testo.bold = true
    _root.Scorre.Dinamico.Txt_Testo.align = "center"

    li assegni a chi ?

    Perchè il campo di testo che crei in runtime vuole che gli assegni un TextFormat in runtime 🙂


  • User

    @Flep said:

    Scusami, non ti seguo...

    Perdonami ma credo mi manchi una qualche conoscenza basilare...
    Correggimi se sbaglio...

    io nel primo frame creo la casella di testo all'interno del mio clip che sarà quello che farò scorrere da codice... e fin qui funziona.

    poi con la tua procedura vado a scriverci il mio testo che arriva dal txt
    _root.Scorre.Dinamico.Txt_Testo.text = src;
    e questo funziona...

    poi visto che il testo non ha le caratteristiche che io cerco vado ad impostarlo assegnandoglio font ,altezza , colore ecc...
    _root.Scorre.Dinamico.Txt_Testo.multiline = true
    _root.Scorre.Dinamico.Txt_Testo.font = "Tahoma"
    _root.Scorre.Dinamico.Txt_Testo.textHeight = 150
    _root.Scorre.Dinamico.Txt_Testo.color = 0xFFFFFF
    _root.Scorre.Dinamico.Txt_Testo.bold = true
    _root.Scorre.Dinamico.Txt_Testo.align = "center"

    e questo non funziona... probabilmente perchè è sbagliato il metodo... ma come posso creare la mia casella di testo già con le caratteristiche da me cercate?


  • Super User

    No, il fatto è che il campo di testo non lo devi creare tu.
    Lo devi creare via codice come ti ho fatto vedere.

    Intanto fai così, poi vediamo di cambiare la font e altre cose 🙂


  • User

    @Flep said:

    No, il fatto è che il campo di testo non lo devi creare tu.
    Lo devi creare via codice come ti ho fatto vedere.

    Scusami veramente tanto... mi sento deficente a dirlo ma pensavo di averlo già fatto da codice... Non è la riga del createTextField...????

    Tutto il mio codice ,ma anche così non funziona!

    var format:TextFormat = new TextFormat();
    format.align = "center";
    format.size = 80;
    format.font = "Tahoma";
    format.color = 0xFFFFFF;
    format.bold = true;
     
    _root.Scorre.Dinamico.createTextField('Txt_Testo',_root.Scorre.Dinamico.getNextHighestDepth(),0,0,400,500);
    _root.Scorre.Dinamico.Txt_Testo.setTextFormat(format)
    var my_lv:LoadVars = new LoadVars();
     
    my_lv.onData = function(src:String) {
    if (src == undefined) {
    trace("Error loading content.");
    return;
    }
    _root.Scorre.Dinamico.Txt_Testo.text = src;
    };
    

    my_lv.load("Titolicoda.txt", my_lv, "GET");


  • Super User

    Per il momento togli il TextFormat , dobbiamo andare per esclusione e vedere dove è l' errore...

    fai anche un trace :
    trace(scr);
    _root.Scorre.Dinamico.Txt_Testo.text = src;


  • User

    Con il codice seguente nel filamato non vedo nulla ma il trace mi riporta il mio testo... con una linea vuota in più ad ogni "a capo".

     
    _root.Scorre.Dinamico.createTextField('Txt_Testo',_root.Scorre.Dinamico.getNextHighestDepth(),0,0,400,0);
    //_root.Scorre.Dinamico.Txt_Testo.setTextFormat(format)
    var my_lv:LoadVars = new LoadVars();
     
    my_lv.onData = function(src:String) {
     if (src == undefined) {
      trace("Error loading content.");
      return;
     }
     trace(src);
     _root.Scorre.Dinamico.Txt_Testo.text = src;
    };
     
    my_lv.load("Titolicoda.txt", my_lv, "GET");
    
    

    Se nella "createTextField" ci metto un'altezza pari a 500 vedo il mio testo scorrere nel filmato ma è piccolo e nero quando io lo voglio grande e bianco...


  • Super User

    Ce la fai a passarmi il FLA ?


  • User

    Ma sai che ho provato a scrivere nel mio file di testo

    <p style="font-size:30px;">Prima riga
    Seconda riga
    Terza riga ecc
    </p>

    ed il testo viene effettivamente più grande.... funziona da xml... che purtroppo il cliente non vuole.


  • User Attivo

    a quel punto devi applicare una formattazione html..

    campodinamic.html = true
    campdinamic.htmlText = content


  • User

    @edo_flashas said:

    a quel punto devi applicare una formattazione html..

    campodinamic.html = true
    campdinamic.htmlText = content

    Non so se hai letto tutto il tread ma il cliente vuole un file di testo nudo e crudo...
    Per quanto riguarda il formato html vedo che funziona tutto ugualmente... bo? Ma per ora non è il mio obbiettivo.
    Grazie comunque.


  • Super User

    Hai dimenticato il file di testo, scrivilo quì che almeno faccio le prove con l' effettivo testo che necessiti.


  • User

    @Flep said:

    Hai dimenticato il file di testo, scrivilo quì che almeno faccio le prove con l' effettivo testo che necessiti.

    L'effettivo testo lo scriverà il cliente ogni giorno....
    Comunque io provavo con :

     
    Prima riga
    Seconda riga
    Terza riga ecc
    qarta kkkkk gatto merlo capra peppino giorgio
     
    quinta
     
    sesta
     
    settima
     
    ottava
     
    nona
     
    decima
    
    

    Non ridete!!! :quote: