Pagina 1 di 2 1 2 ultimoultimo
Visualizzazione dei risultati da 1 a 10 su 12

Discussione: [AS2] 2 domande

  1. #1
    Utente di HTML.it
    Registrato dal
    May 2009
    Messaggi
    8

    [AS2] 2 domande

    Ciao,
    avrei un paio di domande riguardo a questo progetto AS2 + XML (vedi codice alla fine, il progetto si puo' scaricare qui http://www.nheap.com/prova.zip )


    1. Nel campo di testo "descrizione", avrei bisogno di far comparire del testo "misto", ovvero sia testo normale che dei link clickabili, ovviamente sempre inseribili tramite XML. Come posso fare?

    2. Quando si carica il filmato, nessuna voce appare selezionata all'inizio...io invece vorrei che all'apertura del filmato risultasse gia' selezionata e visibile una delle voci, che codice devo inserire?

    grazie

    codice AS2

    var caricaXML:XML = new XML();
    caricaXML.ignoreWhite = true;
    caricaXML.onLoad = leggiXML;
    caricaXML.load("prova.xml");
    var posInit = item_mc._y;
    function leggiXML(succes:Boolean) {
    if (succes == true) {
    var images:Array = [];
    var anno:Array = [];
    var descrizione:Array = [];
    var titolo:Array = [];
    var tempArray:Array = new Array();
    var tempArray = this.firstChild.childNodes;
    for (var i:Number = 0; i<tempArray.length; i++) {
    images[i] = tempArray[i].childNodes[0].attributes.images;
    anno[i] = tempArray[i].childNodes[0].attributes.anno;
    descrizione[i] = tempArray[i].childNodes[0].firstChild.firstChild;
    titolo[i] = tempArray[i].childNodes[0].firstChild.attributes.titolo;
    var item:MovieClip = item_mc.duplicateMovieClip("elemento"+i+"_mc", i);
    item._y = posInit;
    posInit += 40;
    item.titolo_txt.htmlText = titolo[i];
    item.anno_txt.htmlText = anno[i];
    item.images = images[i];
    item.descrizione = descrizione[i];
    item.onRelease = function() {
    loadimg_mc.loadMovie(this.images);
    descrizione_txt.htmlText = this.descrizione;
    this.titolo_txt.textColor = 000000;
    oldId.titolo_txt.textColor = 000000;
    oldId = this;
    };
    }
    } else {
    trace("file non trovato!");
    }
    }


    codice XML

    <?xml version="1.0" encoding="UTF-8"?>
    <discografia>
    <discoId id="1">
    <disco images="image1.jpg" anno="2007">
    <descrizione titolo="nome1"><![CDATA[aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa
    aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa aaaaaa http://www.mylink.com aaaaaaaaaaaabbbbbbbbbbbbbbbbdddd http://www.mylink.com gggggggggggggggggg]]></descrizione>
    </disco>
    </discoId>
    <discoId id="2">
    <disco images="image2.jpg" anno="2007">
    <descrizione titolo="nome2"><![CDATA[aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa
    aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa aaaaaa http://www.mylink.com aaaaaaaaaaaabbbbbbbbbbbbbbbbdddd http://www.mylink.com gggggggggggggggggg]]></descrizione>
    </disco>
    </discoId>
    <discoId id="3">
    <disco images="image3.jpg" anno="2008">
    <descrizione titolo="nome3"><![CDATA[aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa
    aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa aaaaaa http://www.mylink.com aaaaaaaaaaaabbbbbbbbbbbbbbbbdddd http://www.mylink.com gggggggggggggggggg]]></descrizione>
    </disco>
    </discoId>
    <discoId id="4">
    <disco images="nome4.jpg" anno="2008">
    <descrizione titolo="Realight"><![CDATA[aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa
    aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa aaaaaa http://www.mylink.com aaaaaaaaaaaabbbbbbbbbbbbbbbbdddd http://www.mylink.com gggggggggggggggggg]]></descrizione>
    </disco>
    </discoId>
    </discografia>

  2. #2
    Utente di HTML.it L'avatar di and80
    Registrato dal
    Mar 2003
    Messaggi
    15,182
    Per la prima cosa devi inserire il tag <a> dove vuoi il link e rendere il campo di testo che lo visualizza come "html".
    Per la seconda richiesta, forse non vedo correttamente il codice, ma non mi pare che sia da lì che si controlla questo aspetto.

    PS. non ho scaricato il file.

  3. #3
    Utente di HTML.it
    Registrato dal
    May 2009
    Messaggi
    8
    Originariamente inviato da and80
    Per la prima cosa devi inserire il tag <a> dove vuoi il link e rendere il campo di testo che lo visualizza come "html".
    Per la seconda richiesta, forse non vedo correttamente il codice, ma non mi pare che sia da lì che si controlla questo aspetto.

    PS. non ho scaricato il file.
    Ciao grazie per la risposta! Il campo di testo e' gia' HTML e ho pure provato a mettere il tag <a>, ma in quel modo nel campo di testo appare proprio , letteralmente, <a>http://www.miolink.com</a>, ovviamente non cliccabile...(anche se qui sul forum appare cliccabile..)

    per la seconda domanda, il codice che ho e' solo questo finora, in caso cosa dovrei aggiungere?

    se hai tempo prova a scaricare il file, cosi' capisci subito quello che vorrei fare

  4. #4
    Utente di HTML.it L'avatar di and80
    Registrato dal
    Mar 2003
    Messaggi
    15,182
    Beh, è abbastanza strana la cosa, per lo meno non dovresti visualizzare i tag, vedo se riesco a scaricarmi il tuo file e verificare cosa succede esattamente.

  5. #5
    Utente di HTML.it L'avatar di and80
    Registrato dal
    Mar 2003
    Messaggi
    15,182
    Ok, i valori < e > all'interno del cdata vengono trasformati in entità html e flash nel campo html le riconosce come tali ritrasformandole in < e >, il problema è che in questa maniera non interpreta il tag e da qui noi vediamo il tag scritto per intero.
    Sto verificando un attimo quest'incompatibilità tra il cdata e i caratteri html ma non trovo nulla.
    Ho provato per sicurezza a crearmi un nuovo file su cui tentare il parsing, ma ottengo lo stesso output (per la cronaca, ho provato anche in as3 e funziona perfettamente).
    La soluzione è l'uso del bbcode ossia nell'xml usare le parentesi quadre al posto di <> e poi sostituirle in flash.

  6. #6
    Utente di HTML.it
    Registrato dal
    May 2009
    Messaggi
    8
    come faccio a sostituire le [] con le <> in Flash?
    meglio ancora, se sei riuscito a risolvere il problema, potresti pubblicare il codice?
    grazie mille!

  7. #7
    Utente di HTML.it L'avatar di and80
    Registrato dal
    Mar 2003
    Messaggi
    15,182
    Eccoci, ho usato un trucchetto che sembra funzionare
    Cambia il tuo codice con questo:

    Codice PHP:
    var posInit item_mc._y;
    var 
    xmlData = [];
    var 
    xmlLoad = new XML();
    xmlLoad.ignoreWhite true;
    xmlLoad.onLoad onXMLLoad;
    xmlLoad.load("prova.xml");
    function 
    onXMLLoad (s) {
        if (
    s) {
            var 
    temp xmlLoad.firstChild.childNodes;
            for (var 
    i=0i<temp.lengthi++) {
                
    xmlData.push({id:temp[i].attributes.idimmagine:temp[i].firstChild.attributes.imagesanno:temp[i].firstChild.attributes.annotitolo:temp[i].firstChild.firstChild.attributes.titolodescrizione:temp[i].firstChild.firstChild.firstChild});
            }
            
    parse();
        } else {
            
    trace("file non trovato!");
        }
    }
    function 
    parse () {
        for (var 
    i=0i<xmlData.lengthi++) {
            var 
    dataObj xmlData[i];
            var 
    item item_mc.duplicateMovieClip("elemento"+i+"_mc"i);
            
    item._y posInit;
            
    posInit += 40;
            
    item.titolo_txt.htmlText dataObj.titolo;
            
    item.anno_txt.htmlText dataObj.anno;
            
    item.images dataObj.immagine;
            
    item.descrizione dataObj.descrizione;
            
    item.onRelease = function() {
                
    loadimg_mc.loadMovie(this.images);
                
    descrizione_txt.html true;
                
    descrizione_txt.htmlText this.descrizione;
                
    descrizione_txt.htmlText descrizione_txt.text;
                
    this.titolo_txt.textColor 0;
                
    oldId.titolo_txt.textColor 0;
                
    oldId this;
            }
        }

    E fai in modo che l'xml assomigli a questo:

    codice:
    <?xml version="1.0" encoding="UTF-8"?>
    <discografia>
    	<discoId id="1">
    		<disco images="image1.jpg" anno="2007">
    			<descrizione titolo="nome1"><![CDATA[ aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa link ]]></descrizione>
    		</disco>
    	</discoId>
    	<discoId id="2">
    		<disco images="image2.jpg" anno="2008">
    			<descrizione titolo="nome2"><![CDATA[ aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa link ]]></descrizione>
    		</disco>
    	</discoId>
    	<discoId id="3">
    		<disco images="image3.jpg" anno="2009">
    			<descrizione titolo="nome3"><![CDATA[ aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa link ]]></descrizione>
    		</disco>
    	</discoId>
    	<discoId id="4">
    		<disco images="image4.jpg" anno="2010">
    			<descrizione titolo="nome4"><![CDATA[ aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa link ]]></descrizione>
    		</disco>
    	</discoId>
    </discografia>
    In pratica facendo fare un doppio passaggio al testo nel campo, le entità html si ritrasformano e vengono lette correttamente dal campo stesso impostando il link in maniera regolare.

  8. #8
    Utente di HTML.it
    Registrato dal
    May 2009
    Messaggi
    8
    perfetto! adesso funziona proprio come volevo
    non so come ringraziarti, erano giorni che ero bloccato su questo problema
    Hai qualche idea per quanto riguarda la seconda domanda? Cioe', come far apparire una voce gia' selezionata? Perche' cosi' e' un po' brutto , con quel riquadro grigio all'inizio...leggevo di una funzione selectedIndex , ma non so a cosa applicarla...

  9. #9
    Utente di HTML.it L'avatar di and80
    Registrato dal
    Mar 2003
    Messaggi
    15,182
    No, lascia perdere il selectedIndex, dovresti dirmi più che altro come intendi rendere "selezionata" una di quelle voci.

  10. #10
    Utente di HTML.it
    Registrato dal
    May 2009
    Messaggi
    8
    Originariamente inviato da and80
    No, lascia perdere il selectedIndex, dovresti dirmi più che altro come intendi rendere "selezionata" una di quelle voci.
    Se tu apri il filmato cosi' come e' adesso, si vedono le 4 voci a sinistra, ma nessuna di esse e' selezionata, infatti il riquadro immagine rimane grigio e il campo di testo a destra e' vuoto; invece io vorrei che una voce fosse gia' attiva ,(per esempio la prima o l'ultima)...poi magari indichero' la voce attiva con un colore diverso, ma questo gia' lo so fare...invece per me il problema ora e' proprio quello di fargli selezionare automaticamente una voce

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.