salve a tutti,
stò ultimando una gallery dinamica a 2 sezioni (1° sezione menu dinamico che elenca le categorie, 2° menù che si crea sempre dinamicamente con l'elenco delle img associate a quella categoria)
cè un errore da qualche parte che non mi permette il caricamento automatico della prima img a scapito delle successive o viceversa.
questo è quello che faccio in breve:
leggo il file xml, carico l'array che utilizzerò per creare il menù, e fatto il primo passaggio carico la prima immagine di default, e poi continuo con la creazione del menù.
l'immagine che carico con loadmovie va a finire in un altro layer:
+ esattamente in "_root.pippo" cè questo codice, mentre l'immagine viene creata in "_root.sezione.immagine_vis"
sempre dentro "_root.pippo" viene creato il menù ogno bottone del menù è "container"
a questo punto avrò la prima immagine caricata in un livello, e il menù in un altro livello.Codice PHP:
if (loaded) {
xmlNode = this.firstChild;
image = [];
image2 = [];
description = [];
id = [];
testo_cat = [];
total = xmlNode.childNodes.length;
var yPos = 0;
// carico l'array per una lunghezza pari al numero di nodi, con un contatore i
for (i=0; i<total; i++) {
image[i] = xmlNode.childNodes[i].childNodes[0].firstChild.nodeValue;
description[i] = xmlNode.childNodes[i].childNodes[1].firstChild.nodeValue;
image2[i] = xmlNode.childNodes[i].childNodes[2].firstChild.nodeValue;
id[i] = xmlNode.childNodes[i].childNodes[3].firstChild.nodeValue;
testo_cat[i] = xmlNode.childNodes[i].childNodes[4].firstChild.nodeValue;
}
// visualizzo la prima immagine dell'array
_root.sezione.immagine_vis.loadMovie(image[0]);
_root.sezione._visible=false;
// richiamo la funzione che aggiunge i bottoni
aggiungi();
} else { content = "file not loaded!"; }
}
xmlData = new XML();
xmlData.ignoreWhite = true;
xmlData.onLoad = loadXML;
xmlData.load("xml_flash/realizzazioni.php");
//_global.lim=_root.controllo.text;
function aggiungi (){
//punto di partenza di x e y
var xPos = 30;
var yPos = 235;
//con il ciclo includo nel movie container alle istanze presenti
//in esso i valori recuperati dal file xml
for (var k=0; k<total; k++) {
//attach the container clip
attachMovie("container", "new"+k, k, {_x:xPos, _y:yPos});
//increase the y position each time
yPos += this["new"+k]._height+0;
//add the information
this["new"+k].name.text = description[k];
this["new"+k].name._alpha=70;
this["new"+k].spazio_scritta._alpha=70;
this["new"+k].image.loadMovie(image[k]);
this["new"+k].image._alpha=100;
this["new"+k].link = image2[k];
this["new"+k].sez_id = id[k];
this["new"+k].testo.text = testo_cat[k];
//_root.pinco.text= image2[k];
}
}
questo una parte del codice abbinato al bottone del 1° menù:
allora il punto principale è:Codice PHP:
on (release) {
_root.img_logo._visible=false;
_root.sezione._visible=true;
_root.sezione.immagine_vis.unloadMovie(link);
//_root.sezione.immagine_vis.unloadMovie(link_sez);
//carica l'immagine in riferimento alla categoria
_root.sezione.immagine_vis.loadMovie(link)
//imposto la larghezza (tutte le immagini che carico in questa posizione sono 280X210) caricate precedentemente con un pannello di gestione
_root.sezione.immagine_vis._width=280;
_root.sezione.immagine_vis._x=0;
_root.sezione.immagine_vis._y=-235;
_root.sezione.immagine_vis._quality = "best";
_root.sezione.immagine_vis._alpha=0;
//gestisco il testo per quella determinata categoria
_root.sezione.testo_cat.text=this.testo.text ;
_root.sezione.testo_cat.text._alpha=0;
_root.link_big.text="";
//disattivo il bottone su immagine_vis per ingrandimento
_root.sezione.immagine_vis.enabled=false
//gestisco i bottoni e
_root.sinistra.enabled=false;
_root.sinistra._alpha=40;
_root.destra.enabled=true;
_root.destra._alpha=100;
//richiamo funzione verifica testo.
verifica_testo();
//Come per la creazione del 1° menù, qui vadoa creare il 2°. Leggo il file xml passandogli id che ricevo dal bottone cliccato.
.
.
.
.
xml2Data = new XML();
xml2Data.ignoreWhite = true;
xml2Data.onLoad = loadXML_sez;
xml2Data.load("xml_flash/realizzazioni_interno.php?id="+sez_id);
function aggiungi_sez (){
.
.
.
}
//altre funzioni per effetti sui bottoni.
}
//infine questo nel 2° frame in _root:
fa entrare l'immagine ingrandita dall'alto verso il basso.
_root.sezione.immagine_vis.onEnterFrame=function() {
//spostamento verso il basso fino ad occupare la posizione indicata
if( this._y<=0) {
this._y+=60;
}
//visualizzazione dell'immagine da alpha=0 a 100
if( this._alpha<=99) {
this._alpha+=10
}
delete this.onEnterFrame;
}
se imposto al momento della creazione del 1° menù la larghezza dell'immagine da aprire immagine_vis l'immagine si apre deformata, e cliccando su un bottone del 1° menù l'immagine che viene caricata al primo turno non viene visualizzata, al secondo click si visualizza nella stessa posizione del menù, verticalmente e deformata;
se invece non setto la larghezza dell'img al momento della creazione del 1° menù, ma viene settata all' on(press) del bottone, l'immagine si apre correttamente nella posizione corretta, ma sempre al 2° click. i primi due l'immagine viene aperta deformata.
Spero di aver spiegato bene/ illustrato il problema.

Rispondi quotando