Visualizzazione dei risultati da 1 a 3 su 3
  1. #1

    Hyperlink in Flash con XML

    Il mio movie flash legge il contenuto di un file xml suddiviso in righe:

    per intenderci:

    <content>
    <riga>questa e' la prima riga</riga>
    <riga>questa e' la seconda riga</riga>
    <riga>questa e' la terza riga</riga>
    <riga>...</riga>
    <riga>...</riga>
    </content>

    molto semplicemente scorre il file e crea un TextField per ogni riga e la mostra:

    for(i=0;i<fileTextArray.length;i++) {

    displayText = fileTextArray[i].childNodes[0];

    var rowText: TextField = _root.createTextField("riga" + i, _root.getNextHighestDepth() , 100, 100, 550, 100);
    rowText.html = true;
    rowText.htmlText = displayText;
    }


    Fin qui tutto bene.

    adesso pero' vorrei inserire un hyperlink nel testo, ma devo poterlo fare a mio piacimento perche' il testo variera' anche di molto e ogni volta potrebbero esserci link diversi a parole diverse:

    es. ieri sono andato al cinema a vedere questo FILM e mi sono divertito (e la parola film deve linkare il sito che parla del film)
    oppure: mentre visitavo roma ho visto il COLOSSEO e il CIRCO MASSIMO e mi sono fatto la fila per entrare (e le due parole devono contenere i due link che rimandano ai siti dove se ne parla)

    Ho provato a fare numerose ricerche su internet ma davvero non sono riuscito a trovare un metodo che funzioni.
    Il file XML passa a Flash una stringa che lui non riesce ad interpretare correttamente come HTML percio' non crea il link, ma si mi scrive : CIAO esattamente come fosse testo.
    Ho provato in tutti i modi a formattare questa stringa in XML e poi ho cercato di farlo con actionscript una volta caricata, ma sembra un' impresa

    impossibile ed e' strano perche' se io metto semplicemente questa sintassi:
    rowText.htmlText = "<a href=\"www.ciao.i\">CIAO</a>" il tutto funziona correttamente (ma devo usare \" ed e' un carattere inriproducibile in XML!)

    Prima di gettare la spugna volevo chiedervi un consiglio..

    Qualche idea?

    Grazie, Fabrizio.

  2. #2
    Sul nodo xml devi usare CDATA per poter scrivere codice html senza che l'xml sia invalidato.

    Su flash devi usare il testo in html.

    Se ti scrive ancora il codice completo vuol dire che i caratteri come < e > vengono trasformati in entita html (ovvero &lt; e &gt; )

    Dovresti farti una funzione che trasforma le entità nei rispettivi segni

    qualcosa tipo
    codice:
    String.prototype.converti = function(){
       var stringa = this.split("&gt;").join(">")
       stringa = stringa .split("&lt;").join("<")
       return stringa
    }
    e poi
    codice:
    rowText.htmlText = displayText.converti()

  3. #3
    Grazie Stan,

    usavo gia' il CDATA, ma non ne voleva sapere.

    Ho risolto, l'errore stava nel codice:

    displayText = fileTextArray[i].childNodes[0];

    Purtroppo la cosa mi ha fuorviato, perche' il testo veniva caricato lo stesso, ma effettivamente non convertito correttamente.

    L'esatta sintassi e':

    displayText = fileTextArray[i].childNodes[0],nodeValue;

    mi ero dimenticato il .nodeValue e la cosa bloccava tutto in modo nascosto.

    Grazie per l'assistenza.

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.