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

    problemi con ciclo FOR / XML

    Non riesco a capire dove è il problema in questo ciclo.
    Mi visualizza solo un nodo del mio XML.

    XML:
    codice:
    <dati>
    <numero foto="1">
    <foto img="../images/01.jpg" titolo="Prima news" data="18/01/2005">testo nodo 1</foto>
    </numero>
    <numero foto="2">
    <foto img="../images/02.jpg" titolo="Seconda news" data="18/01/2005">testo nodo 2</foto>
    </numero>
    <numero foto="3">
    <foto img="../images/03.jpg" titolo="Terza news" data="18/01/2005">testo nodo 3</foto>
    </numero>
    <numero foto="4">
    <foto img="../images/01.jpg" titolo="Quarta news" data="18/01/2005">testo nodo 4</foto>
    </numero>
    </dati>
    ACTIONSCRIPT:
    codice:
    system.useCodepage = true;
    filexml = "../xml/dati.xml";
    this.stop();
    mio_xml = new XML();
    mio_xml.path = this;
    mio_xml.ignoreWhite = true;
    mio_xml.load(filexml);
    mio_xml.onLoad = function(success) {
    	if (success) {
    		//formatto il testo
    		var t1 = "<font color='#FFFFFF' size='11'>", t2 = "</font>";
    		var t3 = "<font color='#000000' size='10'>", t4 = "</font>";
    		var nodes = this.firstChild.childNodes;
    		for (var i = 0; i<nodes.length; i++) {
    		
    		for (var j = 0; j<nodes[i].childNodes.length; j++) {
    			//trace(this.firstChild.childNodes.attributes.data);
    			//duplico il mio mc
    			duplicateMovieClip("_root.contnews_mc.news", "clip"+[j], j);
    			_root.contnews_mc["clip"+j]._x = contnews_mc["clip"+j]._x;
    			_root.contnews_mc["clip"+j]._y = contnews_mc["clip"+j]._y+j*150;
    			_root.contnews_mc["clip"+j].testo1 = ""+t1+(nodes[i].childNodes[j].attributes.data)+t2+"";
    			_root.contnews_mc["clip"+j].testo2 = ""+t1+(nodes[i].childNodes[j].attributes.titolo)+t2+"";
    			_root.contnews_mc["clip"+j].testo = ""+t3+(nodes[i].childNodes[j])+t4+"";
    			_root.contnews_mc["clip"+j].imgcont_mc.img_mc.loadMovie(nodes[i].childNodes[j].attributes.img);
    			_root.contnews_mc["clip"+j].imgcont_mc.img_mc._xscale = 20;
    			_root.contnews_mc["clip"+j].imgcont_mc.img_mc._yscale = 20;
    			}
    		}
    	} else {
    		this.path.testo = "caricamento errato";
    	}
    };
    contnews_mc.news.scroller.html = true;
    contnews_mc.news.scroller.htmlText = this.testo;
    contnews_mc.news.scroller1.html = true;
    contnews_mc.news.scroller1.htmlText = this.testo1;
    contnews_mc.news.scroller2.html = true;
    contnews_mc.news.scroller2.htmlText = this.testo2;
    //maschera le news
    contnews_mc.setMask(mask_mc);

    LA struttura è un MC con istanza contnews_mc con all'interno un altro mc con istanza news e all'interno di news un mc che prende la mia immagine (imgcont_mc.) e un tre testi dinamici con (testi1, testo2 e testo3).

    Mmi visualizza solo la quarta news. Cìè un problema con il ciclo penso. Mi aiutate ?? Grazie

  2. #2
    Se vi serve ho messo qui il codice sorgente

    Ciao

  3. #3
    Utente di HTML.it L'avatar di klauzz
    Registrato dal
    Jul 2001
    Messaggi
    303
    Ciao, ho analizzato il tuo code.

    Il problema sta qui:

    codice:
    duplicateMovieClip("_root.contnews_mc.news", "clip"+[j], j);
    			_root.contnews_mc["clip"+j]._x = contnews_mc["clip"+j]._x;
    			_root.contnews_mc["clip"+j]._y = contnews_mc["clip"+j]._y+j*150;
    			_root.contnews_mc["clip"+j].testo1 = ""+t1+(nodes[i].childNodes[j].attributes.data)+t2+" ";
    			_root.contnews_mc["clip"+j].testo2 = ""+t1+(nodes[i].childNodes[j].attributes.titolo)+t2+" ";
    			_root.contnews_mc["clip"+j].testo = ""+t3+(nodes[i].childNodes[j])+t4+"";
    			_root.contnews_mc["clip"+j].imgcont_mc.img_mc.loadMovie(nodes[i].childNodes[j].attributes.img);
    			_root.contnews_mc["clip"+j].imgcont_mc.img_mc._xscale = 20;
    			_root.contnews_mc["clip"+j].imgcont_mc.img_mc._yscale = 20;
    perchè imposti il duplicate su "j", che è serve per ciclare i nodi figli del nodo "numero". Essendo solo uno il nodo figlio di "numero", ottenevi solo la duplicazione di un clip.

    Devi invece impostare il duplicate su "i", che serve a far ciclare proprio i nodi che ti interessano.

    Ecco quindi il code corretto.

    Ho apportato qualche modifica anche al duplicate della _y.

    codice:
    system.useCodepage = true;
    filexml = "../xml/dati.xml";
    this.stop();
    mio_xml = new XML();
    mio_xml.path = this;
    mio_xml.ignoreWhite = true;
    mio_xml.load(filexml);
    mio_xml.onLoad = function(success) {
    	if (success) {
    		//formatto il testo
    		var t1 = "<font color='#FFFFFF' size='11'>", t2 = "</font>";
    		var t3 = "<font color='#000000' size='10'>", t4 = "</font>";
    		var nodes = this.childNodes[0].childNodes;
    		for (var i = 0; i<nodes.length; i++) {
    			for (var j = 0; j<nodes[i].childNodes.length; j++) {
    				trace(nodes[i].childNodes);
    				//trace(this.firstChild.childNodes.attributes.data);
    				//duplico il mio mc
    				duplicateMovieClip("contnews_mc.news", "clip"+i, i);
    				_root.contnews_mc["clip"+i]._x = contnews_mc["clip"+i]._x;
    				_root.contnews_mc["clip"+i]._y = (contnews_mc["clip"+i]._y+contnews_mc["clip"+i]._height)+(i*150);
    				_root.contnews_mc["clip"+i].testo1 = ""+t1+(nodes[i].childNodes[j].attributes.data)+t2+"";
    				_root.contnews_mc["clip"+i].testo2 = ""+t1+(nodes[i].childNodes[j].attributes.titolo)+t2+"";
    				_root.contnews_mc["clip"+i].testo = ""+t3+(nodes[i].childNodes[j])+t4+"";
    				_root.contnews_mc["clip"+i].imgcont_mc.img_mc.loadMovie(nodes[i].childNodes[j].attributes.img);
    				_root.contnews_mc["clip"+i].imgcont_mc.img_mc._xscale = 20;
    				_root.contnews_mc["clip"+i].imgcont_mc.img_mc._yscale = 20;
    			}
    		}
    	} else {
    		this.path.testo = "caricamento errato";
    	}
    };
    contnews_mc.news.scroller.html = true;
    contnews_mc.news.scroller.htmlText = this.testo;
    contnews_mc.news.scroller1.html = true;
    contnews_mc.news.scroller1.htmlText = this.testo1;
    contnews_mc.news.scroller2.html = true;
    contnews_mc.news.scroller2.htmlText = this.testo2;
    Ciao

  4. #4

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.