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

Discussione: ciclo XML

  1. #1

    ciclo XML

    Ciao ragazzi. Ho già pstato epr sta cosa ma nonn ho ancora trovato la solution.
    Io hoi un xml fatto così

    codice:
    <dati>
    	<Sezione img="01.jpg">Ciao campo 1</Sezione>
    	<Titolo img="02.jpg">Ciao campo 2</Titolo>
    	<Specifiche img="03.jpg">Ciao campo 3</Specifiche>
    	<Altro img="04.jpg">Ciao campo 4</Altro>
    </dati>
    che richiamo con AS così e recupero immagini e testo. Il testo mi fa il ciclo che chiedo ma le immagini compaiono perkè metto sullo stage 4 MC con istanza clip1, clip2, clip3, clip4:

    codice:
    filexml = "dati.xml";
    system.useCodepage = true;
    this.stop();
    mio_xml = new XML();
    mio_xml.path = this;
    mio_xml.ignoreWhite = true;
    mio_xml.load(filexml);
    mio_xml.onLoad = function(success) {
    	//faccio il ciclo e recupero i dati su 4 testi dinamici CON 4 VARIABILI DIFFERENTI differenti
    	if (success) {
    		var nodes = this.firstChild.childNodes;
    		for(var i = 0; i < nodes.length; i++){
    			this.path["campo" + (i + 1)] = nodes[i].firstChild.nodeValue;
    			this.path["clip" + (i + 1)].loadMovie(nodes[i].attributes.img);
    		}
    	} else {
    		this.path.campo1 = "Dati mancanti";
    	}
    };
    Come faccio a fare un ciclo che mi permetta di associare a campo1 il clip1 secondo Voi?

  2. #2
    proprio nessuno riesce a darmi una mano..un tutorial..qualcosa ..

  3. #3
    Utente di HTML.it
    Registrato dal
    Dec 2004
    Messaggi
    641
    purtroppo non sono una cima, ma se vuoi provare ad inviarmi il file faccio delle prove.

    ciao

  4. #4
    Utente di HTML.it
    Registrato dal
    Dec 2004
    Messaggi
    641
    forse sono riuscita. non ti assicuro che sia il metodo migliore ma...a me funziona.
    allora, ho inserito un mc, chiamato clip, contenente 3 livelli:
    1. il campo testo (campo)
    2. mc per l'immagine (img)
    3. rettangolo con un background
    ovviamente devono essere disposti in questo modo: sotto tutto il rettangolo, sopra il mc immagine e sopra tutto il campo testo.

    a questo punto vado a scrivere il codice nel primo frame dove ho inserito il mc "clip".

    filexml = "dati.xml";
    system.useCodepage = true;
    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) {
    var nodes = this.firstChild.childNodes;
    for(var i = 0; i < nodes.length; i++){
    //fino a qui è il tuo codice. oltre no
    setProperty ("clip", _visible, true);
    duplicateMovieClip("clip", "clip"+[i],i);
    _root["clip"+i]._x = _root["clip"+i]._x
    _root["clip"+i]._y = _root["clip"+i]._y + i*100
    _root["clip"+i].campo = (nodes[i].firstChild);
    _root["clip"+i].img.loadMovie(nodes[i].attributes.img);
    trace(_root["clip"+i]._y)
    }
    }
    };

    PS: come xml ho usato il tuo

    spero di esserti stata utile!!!

  5. #5
    Geazie mic..sembra funzionare ma ho ancora due piccoli problemi...
    Non riesco a settare la larghezza e altezza di come vengono caricate le immagini in img:

    provo così ma non funziona.

    codice:
    		for (var i = 0; i<nodes.length; i++) {
    			//fino a qui è il tuo codice. oltre no 
    			setProperty("clip", _visible, true);
    			duplicateMovieClip("clip", "clip"+[i], i);
    			[b]_root["clip"+i].img._width= 100[b]
    			//_root["clip"+i].img._yscale=10+10*i
    			_root["clip"+i]._x = _root["clip"+i]._x;
    			_root["clip"+i]._y = _root["clip"+i]._y+i*140;
    			_root["clip"+i].campo = (nodes[i].firstChild);
    			_root["clip"+i].img.loadMovie(nodes[i].attributes.img);
    			trace(_root["clip"+i]._y);
    Pero se mi riferisco solo all'istanza di clip mi ridimensiona il movieclip, così:

    _root["clip"+i]._width= 100

    Ancora un piccolo aiuto....

  6. #6
    Utente di HTML.it
    Registrato dal
    Dec 2004
    Messaggi
    641
    non ho capito bene cosa tu debba fare ma...prova a vedere se ti va bene inserire alla fine del codice, prima delle }:

    _root["clip"+i].img._width = 50
    _root["clip"+i].img._height = 50

    in questo modo definisci le dimensioni delle immagini caricate in img (in pixel).
    Se non dovesse essere questa la tua richiesta...prova a rispiegarmi

  7. #7
    brava mic..la mia rikiesta è esattamente quella e ho già provato ad inserire il codice che dici tu, ma non mi definisce le dimensioni.
    Ho fatto un trace e mi da 0 come risultato.

    codice:
    _root["clip"+i].img._width = 50
    La cosa curiosa però è che se setto qualsiasi altra proprieta come:

    codice:
    _root["clip"+i].img._rotation = 50
    _root["clip"+i].img._alpha = 50
    _root["clip"+i].img._xscale = 50
    _root["clip"+i].img._rotation = 50

    mi funziona!!

    ma quando setto _width o _height non funziona !!!!

    Ho provatop anche a fare un debugger per controllare i poarametri che passa sulla finistrella proprieta alla voce _width mi da il valore, e no 0.

    Cosa può essere??

  8. #8
    Utente di HTML.it
    Registrato dal
    Dec 2004
    Messaggi
    641
    strano perchè a me il trace funziona. se metto così:

    ...
    for(var i = 0; i < nodes.length; i++){
    setProperty ("clip", _visible, false);
    duplicateMovieClip("clip", "clip"+[i],i);
    _root["clip"+i]._x = _root["clip"+i]._x
    _root["clip"+i]._y = _root["clip"+i]._y + i*140
    _root["clip"+i].campo = (nodes[i].firstChild);
    _root["clip"+i].img.loadMovie(nodes[i].attributes.img);
    _root["clip"+i].img._width = 50
    _root["clip"+i].img._height = 50
    trace("w: " + _root["clip"+i].img._width + " h: " + _root["clip"+i].img._height);
    }
    }
    };

    con il trace mi scrive: w: 50 h: 50

    se invece commento, lasciando il trace...:

    //_root["clip"+i].img._width = 50
    //_root["clip"+i].img._height = 50

    mi scrive: w: 193.1 h: 46 che sarebbero le dimensioni che ho dato al mio img.

    prova un'altra volta. sinceramente non mi viene in mente cosa possa essere.
    prova a verificare la dimensione del tuo mc img e a vedere che dimensioni ti da con il trace commentando le righe come sopra.
    attendo news, spero positive

  9. #9
    OK. domani ci provo ancora. Grazie

  10. #10
    Ciao Mic.
    Non ci crederai ma ho provato e sul trace mi da ancora valore 0, anche se nel debugger il valore di _width è 50 !!!
    Per ora ho risolto sostituendo _width/_height con _xscale/_yscale.

    Ora ho un altro problema
    Vorrei che il campo del testo dimanico si allungasse in base alla lunghezza che passa XML. Ho provato con questo ma non mi funziona. Il trace che mi conta le righe mi da sempre uno anche se il testo in xml è lunghissimo e dove >3 allunga testo a 300 non funziona.

    codice:
    system.useCodepage = true;
    filexml = "../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) {
    		lunghezzarighe = newsxml_mc.scroller.maxscroll;
    		newsxml_mc.scroller.html = true;
    		newsxml_mc.scroller.htmlText = this.campo;
    		trace(lunghezzarighe);
    		if (newsxml_mc.scroller.maxscroll>3) {
    			root.newsxml_mc.scroller._height = 300;
    		}
    		var nodes = this.firstChild.childNodes;
    		for (var i = 0; i<nodes.length; i++) {
    			duplicateMovieClip("newsxml_mc", "clip"+[i], i);
    			_root["clip"+i]._x = _root["clip"+i]._x;
    			_root["clip"+i]._y = _root["clip"+i]._y+i*140;
    			_root["clip"+i].campo = (nodes[i].firstChild);
    			_root["clip"+i].img.loadMovie(nodes[i].attributes.img);
    			_root["clip"+i].img._xscale = 20;
    			_root["clip"+i].img._yscale = 20;
    		}
    	} else {
    		this.path.campo = "caricamento errato";
    	}
    };
    Grazie ancora

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.