- Home
- Categorie
- Digital Marketing
- Grafica, Visual Design & UX
- Dubbi su Xml Gallery
-
Dubbi su Xml Gallery
Ciao a tutti sto cercano di realizzare una galleria in Flash utilizzando Xml....ovviamente in giro se ne trovano molte ma vorrei capire come funzionano....
adesso vorrei creare una galleria di foto, per ora solamente far apparire le foto (senza miniature)e con una piccola descrizioneil codice è questo
xmlData = new XML(); xmlData.ignoreWhite = true; xmlData.onLoad = loadXML; //al caricamento fai questa funzione xmlData.load("images.xml"); function loadXML(loaded) { if (loaded) { xmlNode = this.firstChild; //trace (xmlNode); ti da tutto XML image = []; description = []; total = xmlNode.childNodes.length; //trace (xmlNode.childNodes.length); = 7 for (i=0; i<total; i++) { trace("*********************************************************"); image* = xmlNode.childNodes*.childNodes[0].firstChild.nodeValue; trace (" IMAGE* = "+xmlNode.childNodes*.childNodes[0].firstChild.nodeValue); trace("*********************************************************"); description* = xmlNode.childNodes*.childNodes[1].firstChild.nodeValue; trace (" descrizione* = " +xmlNode.childNodes*.childNodes[1].firstChild.nodeValue); } } else { content = "Errore nel caricamento dell XML"; } }
la mia principale domanda è.....come faccio a fare in modo che le foto siano messe dentro un MC e distanziato?? riesco solo a farci mettere una foto, sia se faccio un attach e se lo metto sullo stage....non sono un espertissimo di AS ma nemmeno un niubbone....quello che nn riesco a capire è come fare a fare in modo, che ogni volta si crei un MC, che ci sia la foto successiva.....
grazie
-
Ciao Kerotan
Dovresti agire dentro il ciclo for function loadXML(loaded).
Crei una MovieClip vuota con createEmptyMovieClip, fai caricare l' immagine dentro la MovieClip.
Poi ad esempio dici alla MovieClip:
clip._x=clip._widthi+10i;
-
buongiorno grazie pe rla risposta, dovrei fare un createEmptyMovieClip dentro il ciclo for giusto=?? in modo tale che crei tanti movieClip tanti quanti sono le foto no?? però come faccio a dire che quel movieclip deve far vedere una foto??
per poi distanziarli avevo gia capito
grazie
-
sto provando a mettere questo script all interno del ciclo for
ho creato un Mc vuoto posizionato sullo stage con nome istanza picturepicture._x=10; loadMovie(image*, picture); //carica l immagine in picture trace (image*); picture._x+=50;
solo che mi carica solo l ultima immagine....grazie a tutti
-
Cosa dice il trace di image* ?
Poi, dichiara var image:Array=new Array(); all' inizio dello script.
-
il trace di image* mi da tutte le immagini del Xml
1.jpg
2.jpg
....
7.jpggrazie ancora
-
Per caso, non è che le carica tutte, ma le hai tutte sovrapposte e vedi solo l' ultima ?
-
vedo solo l ultima, mi sa che le carica tutte, però vedo solo l ultima
-
picture è la MC che carica l' immagine ?
Se sì, prova a dirgli:
picture._x= picture._widthi+10i;
-
si è il contenitore che carica l immagini ho provato quello script ma mi sposta solamente la foto ( sempre l ultima)
non è che bisogna fare in modo che a ogni passaggio del For, il contenitore picture sia in qualche modo duplicato in modo tale che ospiti le altre foto??
ti ringrazio per le risposte
-
Ad ogni iterazione del ciclo, devi creare una nuova MovieClip vuota:
var picture:MovieClip=this.createEmptyMovieClip('nome'+i,this.getNextHighestDepth());
picture.loadMovie....
picture._x= picture._widthi+10i;Però hai un problema,
picture.width è sempre zero, in quanto non hai un metodo che ti permette di catturare l' evento nel quale flash finisce di caricare l' immagine e allora conosce il width di picture.
Se le immagini hanno tutte lo stesso width ( supponiamo 200 ), allora usi:
picture._x= 200i+10i;Se invece hanno width divero, allora devi usare MovieClipLoader per caricare l' immagine e poi usare un listener per usufruire dell' evento onLoadInit nel quale Flash ha finito di caricare l' immagine e allora puoi interagire completamente con la clip che l' ha caricata e quindi conoscere il width di tale clip.
-
per adesso supponiamo di avere tutte le foto della stessa grandezza a ogni ciclo del for picture deve incrementare di uno
avevo pensato a questo
attachMovie("picture", "picture"+i, this.getNextHighestDepth());
trace (picutre*)
picture*._x+=50;solo che il trace di picture mi da undefined......
dopo provo anche la tua soluzione che cmq mi sembra simile a qs
grazie ancora