Ciao a tutti,
qualche tempo fa in ricerca di spunti per creare una foto gallery, ho visto nel forum un esempio che mi è piaciuto e che ho cercato di personalizzare. Premettendo che non ho molta esperienza in As, quella che vi allego mi dà problemi in fase di avanzamento o ritorno dell'immagine: se avanzo o ritorno con un semplice click di mouse tutto è ok, ma se mi sbaglio o credendo che non è stato accettato il comando clicco due volte consecutive, mi si sfasa la centratura della nuova immagine. C'è modo di accettare una sola pressione di mouse o di gestire questo inconveniente?

stop();
loadMovieNum("pu1_home2.swf", 2);
setProperty("_root.unhide", _visible, false);
i=1
MovieClip.prototype.slaid = function (spost) {
arrivo = this.picture1._x+spost;
arrivo2 = this.picture2._x+spost;
step = 5;
this.onEnterFrame = function () {
if (spost > 0) { // A
if ((arrivo-this.picture1._x) > 0.5) {
partenza = this.picture1._x;
tratto = (arrivo-partenza)/step;
this.picture1._x += tratto;
this.picture2._x += tratto;
} else {
//trace("sto andando a destra... quindi controllo margine sx: "+six);
this.picture1._x = arrivo;
this.picture2._x = arrivo2;
//trace("x1: "+this.picture1._x+" x2: "+this.picture2._x+" sx: "+six);
if (this.picture1._x >= six && this.picture1._x < this.picture2._x) {
this.picture2._x = this.picture1._x-this.picture1._width;
} else if (this.picture2._x >= six && this.picture2._x < this.picture1._x) {
this.picture1._x = this.picture2._x-this.picture1._width;
}
delete this.onEnterFrame;
}
} else {
if ((this.picture1._x-arrivo) > 0.5) {
partenza = this.picture1._x;
tratto = (partenza-arrivo)/step;
this.picture1._x -= tratto;
this.picture2._x -= tratto;
} else {
//trace("vado a sinistra... quindi controllo margine destro: "+dex);
this.picture1._x=arrivo;
this.picture2._x=arrivo2;
//trace("x1: "+this.picture1._x+" x2: "+this.picture2._x+" dx: "+dex);
if (this.picture1._x <= dex && this.picture1._x > this.picture2._x) {
this.picture2._x = this.picture1._x+this.picture1._width;
} else if (this.picture2._x <= dex && this.picture2._x > this.picture1._x) {
this.picture1._x = this.picture2._x+this.picture1._width;
}
delete this.onEnterFrame;
}
} // A
}
}
// impostazioni iniziali
slider.picture1.duplicateMovieClip("picture2", 2);
slider.picture2._x = slider.picture1._width;
//
myc = new Color(slider.picture2); // cambio colore di prova
chg = {rb:150,gb:100,bb:30} // giusto x verificare
myc.setTransform(chg); // quando passa il duplicato
//
wpic = 133 // larghezza singole foto
npic = slider.picture1._width/wpic; // num. foto x slider
npicv = Math.ceil(Stage.width/wpic); // num. foto visibili sullo stage
npico = (npic-npicv)/2-3 // num foto x lato fuori stage (-3 come margine)
six = npico * wpic // limite sx
dex = -(npico+1) * wpi // limite dx
//
//trace("x1: "+slider.picture1._x+" x2: "+slider.picture2._x);
//trace("npic: "+npic+" npicv: "+npicv+" npico: "+npico+" sx: "+six+" dx: "+dex);

grazie