Pagina 1 di 2 1 2 ultimoultimo
Visualizzazione dei risultati da 1 a 10 su 17
  1. #1
    Utente di HTML.it
    Registrato dal
    May 2007
    Messaggi
    88

    [PROBLEMA]Galleria eventi



    Salve.. Volevo creare una galleria che carichi un immagine e il relativo testo, prendendo il tutto da un file XML. Non ho ancora scritto niente per quanto riguarda il posizionamento perchè mi sono incasinato prima. Lo script che ho usato è questo (messo nel primo fotogramma della root):

    codice:
    leggi = function () {
    	nuovo = new XML();
    	nuovo.ignoreWhite = true;
    	nuovo.load("file.xml");
    	nuovo.onLoad = function(success) {
    		if (success) {
    			nfoto = this.childNodes.length; //conta il numero di nodi e li assegna alla variabile nfoto
    			//trace (nfoto);
    			for (i=0; i<nfoto; i++) {
    					
    					this.createEmptyMovieClip("foto_" + i, this.getNextHighestDepth());//crea nuovo mc
    					var img = "foto_" + i;
    					img.loadMovie(this.childNodes[i].attributes.photo); //carica dentro il nuovo mc una foto
    					
    					trace (this.childNodes[i].attributes.photo); //il percorso della foto viene preso correttamente
    					
    					this.createTextField ("didascalia_" + i, this.getNextHighestDepth(), 10*i, 10*i);//crea nuovo textfield
    					var didascalia = "didascalia_" + i;
    					didascalia.text = this.childNodes[i].attributes.didascalia;//inserisci nella propietà text del textfield la didascalia
    					
    					trace (this.childNodes[i].attributes.didascalia);// la didascalia viene presa correttamente
    			}
    			letto = true;
    		} else {
    			trace ("errore di lettura");
    		}
    	};
    };
    
    leggi();
    in pratica questo legge un file XML e quando lo ha caricato dovrebbe far partire un ciclo for che però ha tutto l'aspetto di non funzionare. Secondo me c'è un problema nel modo in cui richiamo i movie clip e i textfiel dopo che li ho creati. Qualcuno sa come aiutarmi?

    Ho controllato con trace(); le variabili che indicano cosa il movie clip deve caricare e sono giuste, stessa cosa per il textfield, solo che il mio stage rimane bianco e vuoto.





    Grazie in anticipo per l'aiuto.
    DuMbSiM
    --
    Versati un altro bicchiere di vino, accenditi quella strana sigaretta. Ogni cosa e' perdonata ancora prima che tu la faccia.

  2. #2
    Utente di HTML.it
    Registrato dal
    Dec 2005
    Messaggi
    714
    per un buon lavoro ti consiglio di separare la parte di carico XML e dell'attachment delle mc ... x' come lo scrivi tu è facile sbagliare i contatori ed impllare il ciclo ...

    1. separa xml
    2. verifica con il trace il corretto caricamento
    3. fai una prova attaccando/creando il primo text e la prima mc

    così a vederlo è troppo lungo da analizzare ... soprattutto senza poter fare test.

    ciao
    mir
    Fotografario MultiUtente Interamente in Flash: QUI

  3. #3
    Utente di HTML.it
    Registrato dal
    May 2007
    Messaggi
    88
    Io avevo iniziato facendo un cosa così:

    codice:
    var img:Array=[];
    var didascalia:Array=[];
    
    leggi = function () {
    	nuovo = new XML();
    	nuovo.ignoreWhite = true;
    	nuovo.load("file.xml");
    	nuovo.onLoad = function(success) {
    		if (success) {
    			nfoto = this.childNodes.length; //conta il numero di nodi e li assegna alla variabile nfoto
    			//trace (nfoto);
    			for (i=0; i<nfoto; i++) {
    					
    					img[i] = (this.childNodes[i].attributes.photo); //carica dentro il nuovo mc una foto
    					
    					trace (img[i]); //il percorso della foto viene preso correttamente
    					
    					didascalia[i] = this.childNodes[i].attributes.didascalia;//inserisci nella propietà text del textfield la didascalia
    					
    					trace (didascalia[i]);// la didascalia viene presa correttamente
    			}
    			letto = true;
    		} else {
    			trace ("errore di lettura");
    		}
    	};
    };
    
    leggi();
    in modo da caricare i percorsi delle immagini e la loro didascalia in due array. E lo fa. Ma po non so come richiamarli al di fuori della funzione.
    DuMbSiM
    --
    Versati un altro bicchiere di vino, accenditi quella strana sigaretta. Ogni cosa e' perdonata ancora prima che tu la faccia.

  4. #4
    Utente di HTML.it
    Registrato dal
    May 2007
    Messaggi
    88
    Se vuoi i file scaricabili sono qui.

    Grazie mille...
    DuMbSiM
    --
    Versati un altro bicchiere di vino, accenditi quella strana sigaretta. Ogni cosa e' perdonata ancora prima che tu la faccia.

  5. #5
    Utente di HTML.it
    Registrato dal
    Dec 2005
    Messaggi
    714
    mi sembra siano nella root quando le usi nelle funzioni ... al massimo fai così:

    _root.img= ...


    da qualsiasi parte lo recuperi facendo _root.img[i] ...
    Fotografario MultiUtente Interamente in Flash: QUI

  6. #6
    Utente di HTML.it
    Registrato dal
    May 2007
    Messaggi
    88


    non me le legge.. Ma non so spiegarmi il perchè...
    DuMbSiM
    --
    Versati un altro bicchiere di vino, accenditi quella strana sigaretta. Ogni cosa e' perdonata ancora prima che tu la faccia.

  7. #7
    Utente di HTML.it
    Registrato dal
    Dec 2005
    Messaggi
    714
    il trace (img[i]); ti da risultati corretti?
    Fotografario MultiUtente Interamente in Flash: QUI

  8. #8
    Utente di HTML.it
    Registrato dal
    May 2007
    Messaggi
    88
    Si certo,

    sia il:

    codice:
    trace (img[i]);
    sial il:

    codice:
    trace (didascalia[i]);
    Danno un output corretto, ma se dopo aver richiamato la funzione "leggi();" inserisco un

    codice:
    trace(img);
    trace(didascalia);
    per darmi come output il contenuto dei due array, mi restituisce "undefined" per tutti e due...

    Non capisco propio il perchè..
    DuMbSiM
    --
    Versati un altro bicchiere di vino, accenditi quella strana sigaretta. Ogni cosa e' perdonata ancora prima che tu la faccia.

  9. #9
    Utente di HTML.it
    Registrato dal
    Dec 2005
    Messaggi
    714
    Danno un output corretto, ma se dopo aver richiamato la funzione "leggi();" inserisco un

    codice:
    trace(img);
    trace(didascalia);
    per darmi come output il contenuto dei due array, mi restituisce "undefined" per tutti e due...

    Non capisco propio il perchè..
    prova a fare trace (img[0])
    Fotografario MultiUtente Interamente in Flash: QUI

  10. #10
    Utente di HTML.it
    Registrato dal
    May 2007
    Messaggi
    88
    Niente anche cosi...

    codice:
    trace (img[0]); //undefined
    Quello che propio non capisco è che se scrivo un codicino qualsiasi che usi una funzione, non ho problemi a tirare fuori le variabili; per esempio:

    codice:
    var conta:Array = [];
    
    
    function prova(){
    	for(var i:Number=0;i<8;i++){
    		conta[i] = i;
    	}
    	trace (conta); //0,1,2,3,4,5,6,7
    };
    
    
    
    prova();
    
    trace(conta); //0,1,2,3,4,5,6,7
    funziona benissimo (cioè non serve a niente) ma gira e fa passare le variabili fuori dalla funzione...
    Perchè l'altro script (che è in sostanza uguale, un for dentro una funzione) non lo fa??
    DuMbSiM
    --
    Versati un altro bicchiere di vino, accenditi quella strana sigaretta. Ogni cosa e' perdonata ancora prima che tu la faccia.

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.