Pagina 1 di 2 1 2 ultimoultimo
Visualizzazione dei risultati da 1 a 10 su 14
  1. #1

    Gallery fotografica xml

    Ciao ho questo codice

    codice:
    //Indica il numero foto da mostrare in orizzontale
    numero_colonne = 3;
    // Contatori per identificare su quale riga e colonna mi trovo
    riga = 1;
    colonna = 0;
    //Indicano le distanze tra una foto e un'altra sia in orizzontale che verticale
    distanzay = 20;
    distanzax = 20;
    //Indicano in quale posizione devo mettere le foto sia in orizzontale che verticale
    cursorex = distanzax;
    cursorey = distanzay;
    //Dimensioni immagini
    fotow = 100;
    fotoh = 100;
    
    cont = 0;
    filexml = "dump.xml";
    ApriXML();
    function ApriXML() {
    	mioxml = new XML();
    	myarray = new Array();
    	mioxml.load(filexml);
    	mioxml.onLoad = ElaboraXML;
    	function ElaboraXML(success) {
    		if (mioxml.loaded) {
    			myarray = mioxml.firstChild.nextSibling.childNodes;
    			for (i=0; i<=myarray.length; i++) {
    				if (myarray[i].nodeName == "quadro") {
    					cont++;
    					clip = _root.createEmptyMovieClip(("miniatura"+cont), cont);
    					clip.loadmovie("zoom.php?foto="+myarray[i].childNodes[1].firstChild.nodeValue+"&fotow="+fotow+"&fotoh="+fotoh, cont);
    					if(colonna == 3){
    						colonna = 0;
    						righe++;
    						cursorey = cursorey+fotoh+distanzay;
    						cursorex = distanzax;
    					}
    					x = cursorex;
    					y = cursorey;
    					clip._x = x;
    					clip._y = y;
    					colonna++;
    					cursorex = cursorex+fotow+distanzax;
    					trace(cursorey);
    				}
    			}
    		}
    	}
    }
    si occupa di elencare le foto presenti in una cartella utilizzando come "db" un file xml.
    Non riesco a capire una cosa.....siccome sto facendo una galleria fotografica mi servirebbe poter cliccare sulle foto per poi ingrandirle...da dove associo l'evento per ognuna delle foto?
    Ho visto alcuni tutoria...ma preferisco creare da zero per capire alcune cose....tipo questa che sto sbagliando!
    ...open mind for different view....

  2. #2
    up
    ...open mind for different view....

  3. #3
    Crea due mc, uno per l'immagine e uno per il pulsante relativo all'immagine (che poi è un contenitore dell'immagine) ed assegni l'azione direttamente al contenitore, invece che all'immagine così non hai problemi, anche perchè ,facendo come hai impolstato la cosa tu dovresti fare una verifica per capire quando il loadmovie ha caricato realmente l'immagine

    codice:
    //Indica il numero foto da mostrare in orizzontale
    numero_colonne = 3;
    // Contatori per identificare su quale riga e colonna mi trovo
    riga = 1;
    colonna = 0;
    //Indicano le distanze tra una foto e un'altra sia in orizzontale che verticale
    distanzay = 20;
    distanzax = 20;
    //Indicano in quale posizione devo mettere le foto sia in orizzontale che verticale
    cursorex = distanzax;
    cursorey = distanzay;
    //Dimensioni immagini
    fotow = 100;
    fotoh = 100;
    cont = 0;
    filexml = "dump.xml";
    ApriXML();
    function ApriXML() {
    	mioxml = new XML();
    	myarray = new Array();
    	mioxml.load(filexml);
    	mioxml.onLoad = ElaboraXML;
    	function ElaboraXML(success) {
    		if (mioxml.loaded) {
    			myarray = mioxml.firstChild.nextSibling.childNodes;
    			for (i=0; i<=myarray.length; i++) {
    				if (myarray[i].nodeName == "quadro") {
    					cont++;
    					contenitoreclip = _root.createEmptyMovieClip("contenitore"+cont, cont);
    					clip = contenitoreclip.createEmptyMovieClip("miniatura"+cont);
    					clip.loadmovie("zoom.php?foto="+[myarray[i].childNodes[1].firstChild.nodeValue]+"&fotow="+fotow+"&fotoh="+fotoh, cont);
    					if (colonna == 3) {
    						colonna = 0;
    						righe++;
    						cursorey = cursorey+fotoh+distanzay;
    						cursorex = distanzax;
    					}
    					x = cursorex;
    					y = cursorey;
    					contenitoreclip._x = x;
    					contenitoreclip._y = y;
    					colonna++;
    					cursorex = cursorex+fotow+distanzax;
    					trace(cursorey);
    					//qui assegni quello che ti pare al MC creato
    					contenitoreclip.onRelease = function() {
    						funzionepercaricarelafotochetiparedovetipare();
    					};
    					//se ti pare magari anche azione di alpha sull'immagine che hai caricato dentro
    					contenitoreclip.onRollOver = function() {
    						setProperty(this, _alpha, 100);
    					};
    					contenitoreclip.onRollOut = function() {
    						setProperty(this, _alpha, 65);
    					};
    				}
    			}
    		}
    	}
    A me così funziona...

  4. #4
    Grazie così funziona unico problema che ora quando clicco su qualunque miniatura con questo codice (è un test!!):

    codice:
    contenitoreclip.onRelease = function() {
    	getURL("javascript:alert('Foto: "+myarray[i].childNodes[1].firstChild.nodeValue+"')");
    }
    mi apre il popup con il nome della prima foto...

    anche mettendo

    codice:
    contenitoreclip.onRelease = function(variabiledapassare) {
    	getURL("javascript:alert('Foto: "+variabiledapassare+"')");
    }
    non scrive il valore che viene modificato all'interno dell'iterazione

    ...open mind for different view....

  5. #5
    Ciao
    Ti rispondo come il grande Coach a suo tempo mi rispose a me per lo stesso problema e cioè che questo succede xchè al momento dell'evento sul pulsante, nel tuo caso onRelease, il ciclo è finito, quindi imgid avrà come valore l'ultimo valore assegnatogli dal ciclo...

    prova così:

    codice:
    ['contenitoreclip'+i].imgid = myarray[i].childNodes[1].firstChild.nodeValue; 
    
    ['contenitoreclip'+i].onRelease = function() { 
    getURL("java script:alert('Foto: "+this.imgid+"')");
    }
    
    };
    il tutto naturalmente all'interno del ciclo...
    Aspetto notizie.

    Ciao

  6. #6
    Ho capito il senso del codice che mi hai postato...unica cosa quando lo scrivo il controllore di sintassi di flash mi dice che c'è errore qui

    codice:
    ['contenitoreclip'+i].onRelease = function() {
    non gli piace ['contenitoreclip'+i] anche se cmq lo compila, senza darmi nessun messaggio di errore nella finestra di output, non funziona
    ...open mind for different view....

  7. #7
    si scusa in effetti così non può andare, devi dargli un percorso...

    per esempio :

    codice:
    _root['contenitoreclip'+i].onRelease = function() {
    se è nella root principale oppure

    codice:
    _root.mc['contenitoreclip'+i].onRelease = function() {
    se miniature e contenitori sono dentro ad un mc specifico...


    Ciao

  8. #8
    non mi va ancora...il percorso dovrebbe essere giusto...ma non va...

    una cosa..... _root['contenitoreclip'+i] non l'ho mai usato mi spieghi? puoi richiamare oggetti dentro altri oggetti con ste parentesi [] ???

    Gnuranza...
    ...open mind for different view....

  9. #9
    Ma è ancora un errore di sintassi? oppure non va lo script?

    Comunque così non fai altro che richiamre la risultante di 'contenitoreclip' + i (cioè contenitoreclip1,2,3,etc.) nel percorso che gli metti davanti (in questo caso _root -mi raccomando senza punto-).

    Mi sono accorto però che tu come contatore del contenitoreclip usi 'cont' e non 'i' per cui:

    codice:
    _root['contenitoreclip'+cont].onRelease = function() {
    Anche se dovrebbe essere la stessa cose in quanto cont è un duplicato di i

  10. #10
    il codice ora è questo:

    codice:
    // Indica il numero foto da mostrare in orizzontale
    numero_colonne = 3;
    // Contatori per identificare su quale riga e colonna mi trovo
    riga = 1;
    colonna = 0;
    // Indicano le distanze tra una foto e un'altra sia in orizzontale che verticale
    distanzay = 20;
    distanzax = 20;
    // Indicano in quale posizione devo mettere le foto sia in orizzontale che verticale
    cursorex = distanzax;
    cursorey = distanzay;
    // Dimensioni immagini
    fotow = 100;
    fotoh = 100;
    _global.quadri = new array();
    cont = 0;
    filexml = "dump.xml";
    ApriXML();
    function ApriXML() {
    	mioxml = new XML();
    	myarray = new Array();
    	mioxml.load(filexml);
    	mioxml.onLoad = ElaboraXML;
    	function ElaboraXML(success) {
    		if (mioxml.loaded) {
    			myarray = mioxml.firstChild.nextSibling.childNodes;
    			for (i=0; i<=myarray.length; i++) {
    				if (myarray[i].nodeName == "quadro") {
    					quadri.push(myarray[i].childNodes[1].firstChild.nodeValue);
    					cont++;
    					contenitoreclip = _root.createEmptyMovieClip("contenitore"+cont, cont);
    					clip = _root.contenitoreclip.createEmptyMovieClip(("miniatura"+cont), cont);
    					clip.loadmovie("zoom.php?foto="+myarray[i].childNodes[1].firstChild.nodeValue+"&fotow="+fotow+"&fotoh="+fotoh, cont);
    					['contenitoreclip'+i].imgid = myarray[i].childNodes[1].firstChild.nodeValue;
    					_root['contenitoreclip'+cont].onRelease = function() {
    						getURL("javascript:alert('Foto: "+this.imgid+"')");
    					};
    					if (colonna == 3) {
    						colonna = 0;
    						righe++;
    						cursorey = cursorey+fotoh+distanzay;
    						cursorex = distanzax;
    					}
    					x = cursorex;
    					y = cursorey;
    					clip._x = x;
    					clip._y = y;
    					colonna++;
    					cursorex = cursorex+fotow+distanzax;
    				}
    			}
    		}
    		// for (i=0; i<=(quadri.length-1); i++) {
    		trace(myarray[i].childNodes[1].firstChild.nodeValue);
    		// }
    	}
    }
    non è un errore di sintassi non va lo script è come se .onRelease non fosse definito perchè quando mi posiziono sul clip non mi da la manina come la dava prima....
    ...open mind for different view....

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.