Pagina 1 di 2 1 2 ultimoultimo
Visualizzazione dei risultati da 1 a 10 su 18
  1. #1

    Prelevare testo e foto da xml

    Ciao, ho 3 campi di testo e un campo immagine, che vorrei popolare tramite un file xml esterno, come fare?

    Es:
    Carico il file xml così strutturato, con un numero di record che può variare, da un minimo di 2 in su..
    codice:
    <record>
    <nome>Mario</nome>
    <sito>www.sito1.it</sito>
    <descrizione><![CDATA[supporta anche caratteri speciali come % & à è ì ò ù, <font color="#FF0000">testo colorato</font>, bold, o italico]]></descrizione>
    <immagine>thSito1.jpg</immagine>
    </record>
    
    <record>
    <nome>Gigi</nome>
    <sito>www.sito2.it</sito>
    <descrizione><![CDATA[supporta anche caratteri speciali come % & à è ì ò ù, <font color="#FF0000">testo colorato</font>, bold, o italico]]></descrizione>
    <immagine>thSito2.jpg</immagine> 
    </record>
    
    ecc..
    Da questo file, vorrei estrarre il numero di record presenti, e per ogni record estrarre la prima voce, in questo caso <nome> ed impilarli uno sull'altro in un campo di testo,
    fatto ciò vorrei che cliccando su ogni voce mi caricasse i restanti dati relativi a quella voce in altri campi pre posizionati..

    ..semplice no?

    Qualcuno sa darmi una mano a realizzare cio?
    Incredibile, quanto a volte ci si impegola in qualcosa che sembra impossibile..
    e poi si scopre che quel che si dava per scontato, perchè banale, ne fosse la soluzione..

  2. #2
    Nessuno che ha idee?
    Incredibile, quanto a volte ci si impegola in qualcosa che sembra impossibile..
    e poi si scopre che quel che si dava per scontato, perchè banale, ne fosse la soluzione..

  3. #3
    Utente di HTML.it
    Registrato dal
    Dec 2004
    Messaggi
    641
    ciao.
    allora, questo è il codice:
    codice:
    filexml = "record.xml";
    
    mioxml =new XML();
    myarray = new Array();
    mioxml.load (filexml);
    mioxml.onLoad = writeXml ;
    mioxml.ignoreWhite = true;
    function writeXml(success){
    	if (mioxml.loaded){
    		
    		myarray = mioxml.firstChild.childNodes;
    		_root.img._visible = false;
    		_root.descrizione._visible = false;
    		_root.sito._visible = false;
    		for(i=0;i<myarray.length;i++){
    			duplicateMovieClip("mc","mc"+[i],i)
    			_root["mc"+i]._y = _root["mc"+i]._y + (_root["mc"+i]._height*i)
    			_root["mc"+i].nome.text = myarray[i].childNodes[0].firstChild
    			_root["mc"+i].descrizione = myarray[i].childNodes[2].firstChild
    			_root["mc"+i].img = myarray[i].childNodes[1].firstChild
    			_root["mc"+i].sito = myarray[i].childNodes[0].firstChild
    			_root["mc"+i].onPress=function(){
    				trace(this.name + " " +  i)
    				_root.img._visible = true;
    				_root.descrizione._visible = true;
    				_root.sito._visible = true;
    				_root.img.text = this.img
    				_root.descrizione.text = this.descrizione
    				_root.sito.text = this.sito
    			}
    		}
    	}
    }
    devi creare un mc chiamato mc (in base al mio codice) che contiene un campo di testo dinamico chiamato nome. questa è la lista dei nome (tramite duplicate) che ti compare al caricamento.
    ora metti 3 campi di testo direttamente sulla root chiamati "img", "sito" e "descrizione". onLoad questi non vengono visualizzati, ma al click compaiono con le info della voce cliccata.

    spero che tutto ti vada bene. se hai bisogno di altri chiarimenti, dimmelo

  4. #4
    Ciao, ho seguito le tue istruzioni, ma non funziona.....
    ho creato il mc ho messo i campi di testo, ma non mi fa vedere nulla..
    Incredibile, quanto a volte ci si impegola in qualcosa che sembra impossibile..
    e poi si scopre che quel che si dava per scontato, perchè banale, ne fosse la soluzione..

  5. #5
    Utente di HTML.it
    Registrato dal
    Dec 2004
    Messaggi
    641
    hai modificato il nome del file xml da record al nome del tuo file? controlla che i nomi istanza siano corretti eprchè a me funziona

  6. #6
    Ciao, mentre provavo ad adattare il tuo script ho trovato questo codice che fa esattamente al caso mio,
    solo che dal file xml originale vorrei fargli leggere dei parametri in più "quelli contrassegnati da // VOCE DA IMPLEMENTARE "
    che ho aggiunto io ma che non mi legge... come fare?
    codice:
    //rendo immediatamente invisibili i pulsanti di scorrimento
    this._lockroot = true;
    up_btn._visible = down_btn._visible = 0;
    up_btn.onPress = function() {
    	lista_txt.scroll = lista_txt.scroll - 1;
    };
    down_btn.onPress = function() {
    	lista_txt.scroll = lista_txt.scroll + 1;
    };
    //carico e processo l'xml
    mio_xml = new XML();
    mio_xml.ignoreWhite = true;
    mio_xml.load("siti.xml");
    mio_xml.onLoad = function() {
    	var root = this.firstChild;
    	var slide = root.childNodes;
    	var limite = slide.length;
    	//oggetto per passare l'evento al clip slide
    	var init = {onPress:caricaImmagini};
    	//funzione che gestisce il caricamento
    	function caricaImmagini() {
    		par = this._name.slice(8);
    		lista_txt.htmlText = "";
    		//li disabilito subito
    		up_btn._visible = down_btn._visible = 0;
    		//controllo se sono necessari i pulsanti
    		if (_root["datiEsterni" + par][1].length > 5) {
    			up_btn._visible = down_btn._visible = 1;
    		}
    		//popolo il campo di testo che riporta i nomi delle sito    
    		for (var l = 0; l < _root["datiEsterni" + par][1].length; l++) {
    			this["datiASF" + l] = [_root["datiEsterni" + par][3][l], _root["datiEsterni" + par][1][l]];
    			lista_txt.htmlText += "" + "Sito " + (l + 1) + "<b/>";
    		}
    	}
    	for (var k = 0; k < limite; k++) {
    		this["slide" + k] = [];
    		this["sito" + k] = [];
    		this["didascalie" + k] = [];
    		this["url" + k] = [];
    		_root["datiEsterni" + k] = [this["slide" + k], this["sito" + k], this["didascalie" + k], this["url" + k]];
    		_root.attachMovie("slide_mc", "slide_mc" + k, 1 + k * 100, init);
    		_root["slide_mc" + k]._x = -148 + (k * 85);
    		_root["slide_mc" + k]._y = -17;
    	}
    	for (var j = 0; j < slide.length; j++) {
    		var slideLoaded = slide[j];
    		this["slide" + j].push(slideLoaded.attributes.titolo);
    		_root["slide_mc" + j].slide_txt.text = this["slide" + j][0];
    		var sito = slideLoaded.childNodes;
    		for (var i = 0; i < sito.length; i++) {
    			var sitoLoaded = sito[i];
    			this["sito" + j].push(sitoLoaded.attributes.id);
    			this["nome" + j].push(sitoLoaded.attributes.nome); // VOCE DA IMPLEMENTARE
    			this["webUrl" + j].push(sitoLoaded.attributes.webUrl);  // VOCE DA IMPLEMENTARE
    			this["didascalie" + j].push(sitoLoaded.attributes.didascalia);
    			this["url" + j].push(sitoLoaded.firstChild.nodeValue);
    		}
    	}
    	//trova un metodo + elegante
    	delete mio_xml;
    };
    function lancia(array) {
    	var elabora = array.split(",");
    	var link = elabora[0];
    	var indice = elabora[1];
    	_parent.testoIntro_mc.alphaTo(0, 0.5);
    	//_parent.filetto_mc.alphaTo(100, 0.5);
    	dida_txt.text = _root["datiEsterni" + par][2][indice - 1];
    	contenitore.loadMovie(_root["datiEsterni" + par][3][indice - 1]);
    }
    XML Originale
    codice:
    <?xml version="1.0" encoding="iso-8859-1"?>
    <slideShow>
    
    <slide id = "1" titolo = "Flash Site">
    <sito id = "1"  didascalia = "Lorem ipsum dolor sit amet, consectetuer adipiscing elit, sed diam non">immagini/siti/slide1/image1.jpg</sito>
    <sito id = "2"  didascalia = "ummy nibh euismod tincidunt ut laoreet dolore magna aliquam erat volutpat. Ut wisi enim ad minim veniam, quis nostrud exerci t">immagini/siti/slide1/image2.jpg</sito>
    <sito id = "3"  didascalia = "ation ullamcorper suscipit lobortis nisl ut aliquip ex ea commodo consequat. Duis autem">immagini/siti/slide1/image3.jpg</sito>
    </slide>
    
    <slide id = "2" titolo = "Dynamic Site">
    <sito id = "1"  didascalia = "velit esse molestie consequat, vel illum dolore eu feugiat nulla facilisis at vero eros et accumsan et iusto odio">immagini/siti/slide2/image1.jpg</sito>
    <sito id = "2"  didascalia = "dignissim qui blandit praesent luptatum zzril delenit augue duis dolore te feugait nulla facilisi.Lorem i">immagini/siti/slide2/image2.jpg</sito>
    <sito id = "3"  didascalia = "Lorem ipsum dolor sit amet, consectetuer adipiscing elit, sed diam nona">immagini/siti/slide2/image3.jpg</sito>
    <sito id = "4"  didascalia = "ation ullamcorper suscipit lobortis nisl ut aliquip ex ea commodo consequat">immagini/siti/slide2/image4.jpg</sito>
    <sito id = "5"  didascalia = "praesent luptatum zzril delenit augue duis dolore">immagini/siti/slide2/image5.jpg</sito>
    <sito id = "6"  didascalia = "ation ullamcorper suscipit lobortis nisl ut aliquip ex ea commodo consequat. ">immagini/siti/slide2/image6.jpg</sito>
    
    </slide>
    
    <slide id = "3" titolo = "Static Site">
    <sito id = "1"  didascalia = "ation ullamcorper suscipit lobortis nisl ut aliquip ex ea commodo consequat.">immagini/siti/slide3/image1.jpg</sito>
    <sito id = "2"  didascalia = "orem ipsum dolor sit amet, consectetuer adipiscing elit, sed diam nona">immagini/siti/slide3/image2.jpg</sito>
    <sito id = "3"  didascalia = "Tmcorper suscipit lobortis nisl ut aliquip ex ea">immagini/siti/slide3/image3.jpg</sito>
    <sito id = "4"  didascalia = "Lorem ipsum dolor sit amet, consectetuer adipiscing el">immagini/siti/slide3/image4.jpg</sito>
    <sito id = "5"  didascalia = "dignissim qui blandit praesent luptatum zzril delenit augue duis dolore te feug">immagini/siti/slide3/image5.jpg</sito>
    <sito id = "6"  didascalia = "ation ullamcorper suscipit lobortis nisl ut aliquip ex ea commodo cons">immagini/siti/slide3/image6.jpg</sito>
    <sito id = "7"  didascalia = "ummy nibh euismod tincidunt ut laoreet dolore magna aliquam erat volutpat. ">immagini/siti/slide3/image7.jpg</sito>
    <sito id = "8"  didascalia = "praesent luptatum zzril delenit augue duis dolore">immagini/siti/slide3/image8.jpg</sito>
    <sito id = "9"  didascalia = "dignissim qui blandit praesent luptatum zzril delenit augue duis dolor">immagini/siti/slide3/image9.jpg</sito>
    
    
    </slide>
    
    </slideShow>
    XML Da far leggere
    codice:
    <sito id = "1" nome = "Pinco Pallino"  webUrl = "www.sito.com" didascalia = "Lorem ipsum dolor sit amet, consectetuer adipiscing elit, sed diam non">immagini/siti/slide1/image1.jpg</sito>
    come faccio a far leggere al codice qui di sopra i campi che ho aggiunto nome e webUrl
    Incredibile, quanto a volte ci si impegola in qualcosa che sembra impossibile..
    e poi si scopre che quel che si dava per scontato, perchè banale, ne fosse la soluzione..

  7. #7
    Utente di HTML.it
    Registrato dal
    Dec 2004
    Messaggi
    641
    esattamente nello stesso modo in cui leggi il titolo. per il titolo avrai una roba del tipo:

    ciòCheStaPrima.attributes.titolo

    per gli altri devi fare:

    ciòCheStaPrima.attributes.nome
    ciòCheStaPrima.attributes.webUrl


  8. #8
    Purtroppo nella lettura da flash a xml sono agli esordi, non sapresti dirmi un po più precisamente in questo codice dove fare le modifiche?
    Incredibile, quanto a volte ci si impegola in qualcosa che sembra impossibile..
    e poi si scopre che quel che si dava per scontato, perchè banale, ne fosse la soluzione..

  9. #9
    Utente di HTML.it
    Registrato dal
    Dec 2004
    Messaggi
    641
    non ho potuto gurdare bene il codice.
    fai una prova mettendo dopo

    this["didascalie" + j].push(sitoLoaded.attributes.didascalia);

    questo codice:

    this["nome" + j].push(sitoLoaded.attributes.nome);
    this["webUrl" + j].push(sitoLoaded.attributes.webUrl);

    fammi sapere

  10. #10
    Utente di HTML.it
    Registrato dal
    May 2004
    Messaggi
    353
    Ciao a tutti, scusate se mi intrometto... ma ho visto che siete fresci di actionscript dinamico e xml...
    volevo chiedervi un aiuto...


    ho un problemino con questo codice che mi crea un menu dinamico con dei pulsanti... il problema è che funziona solo il primo...


    function CreaTabelle1 (cat) {
    var l = 0;
    for (i=0; i<titolo.length; i++) {
    if (categoria[i]==cat){
    attachMovie("clip_thumb", "clip_thumb"+l, l);
    _root["clip_thumb"+l]._x = 59.5;
    _root["clip_thumb"+l]._y = 164.5+(l*_root.u);
    z = titolo[i];
    _root["clip_thumb"+l].titolo = ((this.z));
    _root["clip_thumb"+l].pulsante.k = image1[i];
    _root["clip_thumb"+l].pulsante.j = image2[i];
    _root["clip_thumb"+l].pulsante.y = image3[i];
    _root["clip_thumb"+l].pulsante.x = image4[i];
    l++;
    _root["clip_thumb"+i].pulsante.onRelease = function() {
    pagina.clipscroll.clipcont.foto1.my_mc.loadMovie ((this.k));
    pagina.clipscroll.clipcont.foto2.my_mc.loadMovie ((this.j));
    pagina.clipscroll.clipcont.foto3.my_mc.loadMovie ((this.y));
    pagina.clipscroll.clipcont.foto4.my_mc.loadMovie ((this.x));
    }
    }
    };
    };


    ripeto: le foto vengono caricate corretamente dal 1° pulsante, invece gli altri non danno segni di vita...
    qualche consiglio?
    grazie

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.