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

    Galleria immagini con XML

    Problema: sto cercando di realizzare un galleria di immagini, in un file xml sono memorizzati i percorsi delle immagini e una loro descrizione. Ho scritto un codice che recupera queste informazioni. Lo posto:

    ------------------------------------------------------------------------------------
    filexml = "prova.xml";

    ApriXML();

    function ApriXML () {

    //Questa è la struttura del file XML

    //<immagini>
    // <immagine>
    // <nome>nomeUNO</nome>
    // <URL>urlUNO</URL>
    // <TXT>descrizioneImmagineUNO</TXT>
    // </immagine>
    //</immagini

    mioxml = new XML();
    mioxml.ignoreWhite = true;

    mioxml.load(filexml);
    mioxml.onLoad = ElaboraXML;
    }

    function ElaboraXML (success) {
    if (mioxml.loaded) {
    //recupero il numero di immagini
    var numeroImmagini = mioxml.firstChild.childNodes.length;

    var nodoURL;
    var nodoTXT;
    var nomeFile;
    var descrizione;

    //per ogni immagine presente

    for(n=0;n<numeroImmagini;n++){

    nodoNOME = mioxml.firstChild.childNodes[n].childNodes[0];
    nodoURL = mioxml.firstChild.childNodes[n].childNodes[1];
    nodoTXT = mioxml.firstChild.childNodes[n].childNodes[2];

    //leggo i valori in ogni nodo
    nome = nodoNOME.childNodes[0].toString();
    URL = nodoURL.childNodes[0].toString();
    descrizione = nodoTXT.childNodes[0].toString();

    trace(nome + " : " + descrizione + " : " + URL);


    FINO QUI TUTTO OK, IL TRACE RISPONDE BENE. Il problema è nella sezione di codice che segue perchè da debug si vede che viene creato un solo oggetto MovieClip vuoto con createEmptyMovieClip corrispondente all'ultima immagine del file XML, come se il ciclo for sovrascrivesse l'oggetto....ma non sono sicuro visto che uso alla fine il delete.


    //creo l'oggetto clip filmato vuoto
    var img = new Object(nome);
    _root.createEmptyMovieClip(img, 0);

    //carico l'immagine nel clip filmato vuoto
    _root.img.loadMovie(URL);

    delete img;
    }//fine del for

    delete mioxml;

    }else{
    // _root.loading = "Record non presenti";
    }
    }
    ------------------------------------------------------------------------------------

    Grazie a tutti.

  2. #2
    Ho risolto da solo, metto a disposizione di tutti.
    Aggiungo un paio di Key per chi cercasse online (Actionscript, Flash, XML, Galleria Immagini):

    -------------------------------------------------------------------------------------
    filexml = "prova.xml";


    ApriXML();

    function ApriXML () {

    //Questa è la struttura del file XML

    //<immagini>
    // <immagine>
    // <nome>nomeUNO</nome>
    // <URL>urlUNO</URL>
    // <TXT>descrizioneImmagineUNO</TXT>
    // </immagine>
    //</immagini

    mioxml = new XML();
    mioxml.ignoreWhite = true;

    mioxml.load(filexml);
    mioxml.onLoad = ElaboraXML;
    }

    function ElaboraXML (success) {
    if (mioxml.loaded) {

    //recupero il numero di immagini
    var numeroImmagini = mioxml.firstChild.childNodes.length;

    //imposto il punto di partenza per la creazione delle anteprime sulla _root
    var t = 0;
    var l = 0;

    var nodoURL;
    var nodoTXT;
    var nomeFile;
    var descrizione;

    //pe ogni immagine presente
    for(n=0;n<numeroImmagini;n++){

    nodoNOME = mioxml.firstChild.childNodes[n].childNodes[0];
    nodoURL = mioxml.firstChild.childNodes[n].childNodes[1];
    nodoTXT = mioxml.firstChild.childNodes[n].childNodes[2];

    //leggo i valori in ogni nodo
    nome = nodoNOME.childNodes[0].toString();
    URL = nodoURL.childNodes[0].toString();
    descrizione = nodoTXT.childNodes[0].toString();

    _root.createEmptyMovieClip(nome, n);
    filmato = _root[nome];

    //carico l'immagine nel clip filmato vuoto
    _root.filmato.loadMovie(URL);
    _root.filmato._y = t;
    _root.filmato._x = l;
    _root.filmato._xscale = 25;
    _root.filmato._yscale = 25;

    //imposto la posizione della foto successiva
    l = l + 100;
    }


    delete mioxml;

    }else{
    // _root.loading = "Record non presenti";
    }
    }
    -------------------------------------------------------------------------------------

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.