ciao a tutti, vi espongo subito il mio problema, cercando di mettervi a conoscenza di tutto quello che penso possa servirvi a capire.
per un sito che sto facendo ho trovato una galleria dinamica xml, dico trovata perchè nonostante l'argomento mi interessi, purtroppo l'urgenza del cliente non mi lascia il tempo di mettermi a imparare per bene. benchè scrutando tra i vari comandi actionscript sia riuscito a gestire minime modifiche come la grandezza delle immagini o la loro posizione nello stage, ci sono altre modifiche ben più consistenti che non sono in grado di fare.
la galleria si compone di una piccola finestra ORIZZONTALE a scorrimento con le anteprime, e cliccando su una di queste compare la foto più in grande accompagnata dal testo.
quel che ho bisogno di ottenere è:
1)LA FINESTRA CON LE ANTEPRIME SIA ORGANIZZATA VERTICALMENTE E A GRIGLIA (non una immagine per riga, ma 2 o 3)
2)PERMETTERE ALL'UTENTE DI SALVARE LE IMMAGINI e a tal proposito pensavo facendo un modo che quando clicca sull'immagine gli si apra in una nuova finestra l'immagine così com'è (così come le si trova con google images per dire)
nella cartella contenente le immagini, i file sono organizzati come "foto1_small", "foto1_big", "foto2_small", "foto2_big", etc... in pratica ad ogni immagine corrispondono 2 file, uno small (per l'anteprima) e uno big.
l'xml è compilato in questo modo:
<?xml version="1.0" encoding="utf-8" standalone="yes"?>
<images>
<thumb displayNum="6" separation="5">
<image>images/foto1</image>
<description>Descrizione 1</description>
</thumb>
<thumb>
<image>images/foto2</image>
<description>Descrizione 2</description>
</thumb>
</images>
il file sorgente .fla invece si compone di 3 livelli: "azioni" (contiene solo l'action script per definire la posizione della foto in grande nello stage), "barra" e "box".
il livello "box" contiene il movieclip "foto_big" con l'effetto trasparenza per visualizzare l'immagine nella galleria. e non c'è niente in actionscript se non lo stop.
il livello "barra" invece è più complicato. esso contiene il movieclip "Symbol 8", a sua volta composto di diversi livelli:
"Layer1": contiene le freccine laterali per scorrere le anteprime della galleria (niente actionscript);
"Thumbs" e relativo livello maschera: contiene la maschera reativa alla finestra delle anteprime e il movieclip "Symbol 11" contenente la casella di testo dove verrà visualizzata la descrizione dell'immagine compilata nel documento xml);
"info img": contiene tutte le istruzioni in actionscript:
_level0.portfolio._visible=false;
// imposta a false se non vuoi la descrizione
descriptions = true;
// box descrizione invisibile
alert._visible = true;
// effetto ease
var ease = 5;
//imposto la scala della foto grande
_root.scala_x = 100;
_root.scala_y = 100;
_root.box.useHandCursor = false;
//leggo i dati XML
thumbs = new XML();
thumbs.ignoreWhite = true;
thumbs.load("dati.xml");
// qui inserire il percorso al file .XML
thumbs.onLoad = function() {
root = this.firstChild;
total = root.childNodes.length;
displayNum = Number(root.childNodes[0].attributes.displayNum);
separation = Number(root.childNodes[0].attributes.separation);
//settings
w = 50;
h = 50;
mask._width = displayNum*(w+separation);
mask._height = h+10;
forward._x = mask._width-50;
forward._y = back._y;
mcs = [];
for (i=0; i<total; i++) {
mcs.push(i);
newThumb = thumbnailer.container.duplicateMovieClip("containe r"+i, i);
with (newThumb) {
_x = (w+separation)*i;
preloader._x = w/2;
preloader._y = h/2;
shape._width = w;
shape._height = h;
}
var image = root.childNodes[i].childNodes[0].firstChild.nodeValue;
var image1 = root.childNodes[0].childNodes[0].firstChild.nodeValue;
var author1 = root.childNodes[0].childNodes[2].firstChild.nodeValue;
var desc1 = root.childNodes[0].childNodes[1].firstChild.nodeValue;
newThumb.image = root.childNodes[i].childNodes[0].firstChild.nodeValue;
newThumb.desc = root.childNodes[i].childNodes[1].firstChild.nodeValue;
newThumb.author = root.childNodes[i].childNodes[2].firstChild.nodeValue;
loadMovie(image1+"_big"+".jpg", _root.box.foto_effetto);
_root.barra.alert.autore.text = desc1;
loadMovie(author1, _root.box_autore);
_root.box._xscale = _root.scala_x*(85/100);
// scalo la larghezza
_root.box._yscale = _root.scala_y*(85/100);
// scalo l'altezza
newThumb.onRelease();
newThumb.cont.loadMovie(image+"_small"+".jpg");
//carico le thumbs
newThumb.cont2.loadMovie(image);
//carico le thumbs e le scalo
newThumb.cont._xscale = 100;
// scalo la larghezz
newThumb.cont._yscale = 100;
// scalo l'altezza delle ombre associate alle immagini
newThumb.cont2._xscale = newThumb.cont._xscale;
newThumb.cont2._yscale = newThumb.cont._yscale;
info.onRelease = function() {
loadMovie(_root.author, _root._root.box_autore);
};
newThumb.onRelease = function() {
loadMovie(this.image+"_big"+".jpg", _root.box.foto_effetto);
unloadMovie(_root.box_autore);
// carico l'immagine nel clip effetto
_root.box.play();
// avvio il box
_root.box._xscale = _root.scala_x*(85/100);
// scalo la larghezza
_root.box._yscale = _root.scala_y*(85/100);
// scalo l'altezza
_root.author = this.author;
};
newThumb.onReleaseOutside = function() {
this._width = 100;
this._yscale = 100;
this._y = this._y+10;
this._x = this._x+5;
};
if (descriptions) {
newThumb.onRollOver = function() {
this._xscale = 120;
this._yscale = 120;
this._y = this._y-10;
this._x = this._x-5;
this.swapDepths(9);
};
newThumb.onPress = function() {
alert.desc = this.desc;
alert._visible = true;
};
newThumb.onRollOut = function() {
//alert._visible = false;
this._xscale = 100;
this._yscale = 100;
this._y = this._y+10;
this._x = this._x+5;
};
}
}
//
var offset = total-1;
var dest = 0;
var increment = w+separation;
var ending = (total-displayNum)*(w+separation);
var lastmc = total-1;
var firstmc = 0;
back.onRelease = function() {
if (dest<0) {
dest += increment;
} else {
first = mcs[0];
for (k=0; k<total; k++) {
mcs[k] = mcs[k+1];
}
mcs[total-1] = first;
thumbnailer["container"+lastmc]._x = -(w+separation);
firstmc = lastmc;
//check whos new lastmc
for (k=0; k<total; k++) {
if (mcs[k] == (total-1)) {
lastmc = k;
}
}
}
};
forward.onRelease = function() {
if (dest>-ending) {
dest -= increment;
} else {
last = mcs[total-1];
for (k=1; k<total; k++) {
mcs[total-k] = mcs[total-k-1];
}
mcs[0] = last;
thumbnailer["container"+firstmc]._x = (displayNum)*(w+separation);
lastmc = firstmc;
//check whos new firstmc
for (k=0; k<total; k++) {
if (mcs[k] == 0) {
firstmc = k;
}
}
}
};
//movement
onEnterFrame = function () {
for (j=0; j<total; j++) {
thumbnailer["container"+j]._x += (dest+(mcs[j])*(w+separation)-thumbnailer["container"+j]._x)/ease;
}
//alert._x = _xmouse;
//alert._y = _ymouse;
};
};
e infine c'è un livello vuoto, "Layer 6".
Credo di avervi detto tutto e ringrazio già chiunque sia arrivato a leggere fin qui.
Lo so che è tanto, ma penso che siano info necessarie per farvi comprendere la situazione.
Dalla mia disperazionevi chiedo se c'è qualcuno che possa aiutarmi e vi ringrazio!

vi chiedo se c'è qualcuno che possa aiutarmi e vi ringrazio!
Rispondi quotando
