Visualizzazione dei risultati da 1 a 3 su 3

Discussione: galleria (mx)

  1. #1

    galleria (mx)

    Ciao a tutti
    Ho una galleria fotografica che prende i dati da un file xml:
    <galleriafoto quadri="40" passo="6">
    <img nome="01" pos="foto/img01.jpg"/>
    <img nome="02" pos="foto/img02.jpg"/>
    <img nome="03" pos="foto/img03.jpg"/>
    <img nome="04" pos="foto/img04.jpg"/>
    <img nome="05" pos="foto/img05.jpg"/>
    <img nome="06" pos="foto/img06.jpg"/>
    <img nome="07" pos="foto/img07.jpg"/>
    <img nome="08" pos="foto/img08.jpg"/>
    <img nome="09" pos="foto/img09.jpg"/>
    <img nome="10" pos="foto/img10.jpg"/>
    <img nome="11" pos="foto/img11.jpg"/>
    <img nome="12" pos="foto/img12.jpg"/>
    <img nome="13" pos="foto/img13.jpg"/>
    <img nome="14" pos="foto/img14.jpg"/>
    <img nome="14" pos="foto/img15.jpg"/>

    </galleriafoto>
    il codice in flash è:
    stop();
    // variabili dinamiche
    numerofoto = myXML.childNodes[0].childNodes.length;
    passo = myXML.childNodes[0].attributes.passo;
    // posizionamento quadri vuoti
    distanza = 0;
    livello = 1;
    // posizionamento clip, numeri e link per le immagini
    distanza = 130;
    livello = 100;
    for (l=1; l<numerofoto+1; l++) {
    livello++;
    _root.attachMovie("clip", "clip"+livello, livello);
    _root["clip"+livello]._x = 30*l+(-30)+10;
    _root["clip"+livello]._y = 0+distanza+40;
    _root["clip"+livello].mytext = livello-100;
    _root["clip"+livello].pos = myXML.childNodes[0].childNodes[livello-101].attributes.pos;
    _root["clip"+livello].nome = myXML.childNodes[0].childNodes[livello-101].attributes.nome;
    if (l == passo) {
    distanza += 30;
    l = 0;
    numerofoto -= passo;
    }
    }

    Io vorrei dare un nome ad ogni gruppo di gallerie,ad esempio vorrei che il gruppo di foto che va da img01 e img10 avesse un titolo e si visualizzasse nella pagina,una specie di classificazione, forse non è molto chiaro, ma provo
    grazie

  2. #2
    Utente di HTML.it L'avatar di negatyve
    Registrato dal
    Feb 2001
    Messaggi
    9,479
    Considera questo file xml:

    codice:
    <galleriafoto quadri="40" passo="6">
    	<categoria nome="ufficio">
    		<img nome="01" pos="foto/img01.jpg"/>
    		<img nome="02" pos="foto/img02.jpg"/>
    		<img nome="03" pos="foto/img03.jpg"/>
    		<img nome="04" pos="foto/img04.jpg"/>
    		<img nome="05" pos="foto/img05.jpg"/>
    		<img nome="06" pos="foto/img06.jpg"/>
    		<img nome="07" pos="foto/img07.jpg"/>
    		<img nome="08" pos="foto/img08.jpg"/>
    	</categoria>
    	<categoria nome="casa">
    		<img nome="09" pos="foto/img09.jpg"/>
    		<img nome="10" pos="foto/img10.jpg"/>
    		<img nome="11" pos="foto/img11.jpg"/>
    		<img nome="12" pos="foto/img12.jpg"/>
    		<img nome="13" pos="foto/img13.jpg"/>
    		<img nome="14" pos="foto/img14.jpg"/>
    		<img nome="14" pos="foto/img15.jpg"/>
    	</categoria>
    </galleriafoto>
    E questo script:

    codice:
    data_xml = new XML();
    data_xml.ignoreWhite = true;
    data_xml.path = this;
    data_xml.onLoad = function(success)
    {
    	if(success){
    		this.path.galleria = {};
    		var main_nodes = this.firstChild.childNodes;
    		for(var i = 0; i < main_nodes.length; i++){
    			this.path.galleria[main_nodes[i].attributes.nome] = [];
    			var sub_nodes = main_nodes[i].childNodes;
    			for(var j = 0; j < sub_nodes.length; j++){
    				var item = {}
    				item.nome	= sub_nodes[j].attributes.nome;
    				item.pos 	= sub_nodes[j].attributes.pos
    				this.path.galleria[main_nodes[i].attributes.nome].push(item);
    			}
    		}
    	} else {
    		trace("XML FILE NOT FOUND");
    	}
    };
    data_xml.load("galleria.xml");
    Alla fine del caricamento avrai un oggetto chiamato "galleria", che conterrà tanti oggetti quante sono le categorie indicate nel file xml ( e con quel nome). ogni categoria sarà un array di oggetti, tanti quante le foto per la categoria stessa: ogni oggetto avrà due proprietà, "nome" e "pos".

    Quindi, ad esempio, per sapere l'url della quarta foto della categoria "ufficio", scriverai:

    codice:
    url = galleria.ufficio[3].pos;

  3. #3
    Intanto grazie
    Ovviamente quel codice l'ho scaricato (nel senso che non l'ho fattO io) mi dovresti gentilmenti spiegare come metterlo.
    Ti dico come avevo fatto prima:
    nel primo frame:
    stop();
    // preparazione al caricamento file esterno xml
    myXML = new XML();
    // ignoro gli spazi bianchi della formattazione del file xml
    myXML.ignoreWhite = true;
    // carico il file
    myXML.load("galleriafoto.xml");
    // prima di proseguire verifico che tutto il file sia caricato
    myXML.onLoad = function() {
    trace("test = "+myXML.firstChild.nodeName+" ... XML caricato");
    gotoAndStop(2);
    };

    nel secondo:
    stop();
    // variabili dinamiche
    numerofoto = myXML.childNodes[0].childNodes.length;
    passo = myXML.childNodes[0].attributes.passo;
    // posizionamento quadri vuoti
    distanza = 0;
    livello = 1;
    // posizionamento clip, numeri e link per le immagini
    distanza = 130;
    livello = 100;
    for (l=1; l<numerofoto+1; l++) {
    livello++;
    _root.attachMovie("clip", "clip"+livello, livello);
    _root["clip"+livello]._x = 30*l+(-30)+10;
    _root["clip"+livello]._y = 0+distanza+40;
    _root["clip"+livello].mytext = livello-100;
    _root["clip"+livello].pos = myXML.childNodes[0].childNodes[livello-101].attributes.pos;
    _root["clip"+livello].nome = myXML.childNodes[0].childNodes[livello-101].attributes.nome;
    if (l == passo) {
    distanza += 30;
    l = 0;
    numerofoto -= passo;
    }
    }
    grazie infinite

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.