larghezzamovie = Stage.height; posSin =1; vel = 1; dimImm = 179; selezione._x = 100; letto = false; pos_iniziale = Stage.width-dimImm; //questa linea passa la variabile per posizionare orizzontalmente le miniature, infatti sotto c'è una stringa "_root["mc"+(i+1)]._x = pos_iniziale;" ovvero dice "posiziona orizzontalmente le miniature all'estremità destra dello stage, però falle rientrare della loro larghezza (dimImm)" ... se tu invece le devi posizionare, non so a metà, dovresti scrivere ("Stage.width/2)-(dimImm/2)"...quindi, prima di tutto devi capire orizzontalmente a che valore di _x si devono posizionare! _root.mc_desc.sf_desc._width = pos_iniziale; leggi = function () { nuovo = new XML(); nuovo.ignoreWhite = true; nuovo.load("03 - AltaGioielleria.xml"); nuovo.onLoad = function(success) { if (success) { nfoto = this.childNodes.length; posDes = nfoto; for (i=0; i<nfoto; i++) { _root.attachMovie("mc","mc"+(i+1),i+1); _root["mc"+(i+1)]._y = dimImm*i; _root["mc"+(i+1)]._x = pos_iniziale; _root["mc"+(i+1)].big = this.childNodes*.attributes.photo_big; _root["mc"+(i+1)].desc = this.childNodes*.attributes.descrizione; _root["mc"+(i+1)].contenitore.loadMovie(this.childNodes*.attributes.photo); _root["mc"+(i+1)]._alpha = 50; _root.box.clip_mc.loadMovie(this.childNodes[0].attributes.photo_big); _root.pre.loadMovie(this.childNodes*.attributes.photo_big); _root.image = this.childNodes[0].attributes.photo_big; _root.mc_desc.descrizione.text = this.childNodes[0].attributes.descrizione; _root["mc"+(i+1)].onRelease = released; _root["mc"+(i+1)].onRollOver = rollover; _root["mc"+(i+1)].onRollOut = rollout; _root["mc"+(i+1)].onReleaseOutside = rollout; } letto = true; } else { _root.didascalia.text = "errore di lettura"; } }; }; leggi(); //lo script che segue serve ad indicare le coordinate in cui il mouse è attivo e fa muovere le miniature...Qui il problema è devi avere un po' chiare le idee del piano cartesiano...Siccome le miniature scorrono in un'area precisa compresa tra maggiore < e minore > delle coordinate x e y, devi praticamente fargli capire qual'è l'area attiva dentro cui si muovono le miniature...Per sempio "if (y>0 && y<60)" significa "se la y del mouse è maggiore di zero ma anche inferiore a 60, allora la vel (velocità), etc..." ...Dal momento che le miniature sono un rettangolo che si muove dall'alato al basso devi capire qual'è quest'area entro cui si muoveranno nel tuo stage... _root.onMouseMove = function() { x = _root._xmouse; y = _root._ymouse; if (x>pos_iniziale) { if (y>0 && y<60) { vel = -(Math.round((y-(larghezzamovie/2))/10)); } if (y>260 && y<larghezzamovie) { vel = -(Math.round((y-(larghezzamovie/2))/10)); } } else { if (vel>-1) { vel = 3; } else { vel = -3; } } }; function released() { _root.image = this.big; _root.box.play(); _root.box.clip_mc.loadMovie(_root.image); // questa stringa serve a posizionare le immagini grandi...quindi cerca l'mc "box" e posizionalo nel punto dove vuoi che appaia l'immagine grande! _root.mc_desc.descrizione.text = this.desc; //_root.selezione._y = (larghezzamovie)/2; //_root.didascalia.text = this.etichetta.text; //getURL(percorso,"_blank") } function rollover() { _global.blocca=true; this._alpha = 100; } function rollout() { _global.blocca=false; this._alpha = 50; } _root.onEnterFrame = function() { if (!_global.blocca) if (letto) { for (i=1; i<=nfoto; i++) { _root["mc"+i]._y += vel; } if (vel>0 && _root["mc"+posSin]._y>0) { _root["mc"+posDes]._y = _root["mc"+posSin]._y-dimImm; posSin = posDes; posDes--; if (posDes == 0) { posDes = nfoto; } } if (vel<0 && _root["mc"+posSin]._y<=-dimImm) { _root["mc"+posSin]._y = _root["mc"+posDes]._y+dimImm; posDes = posSin; posSin++; if (posSin>nfoto) { posSin = 1; } } } }; this._lockroot = true; ```Lavorando un po' sulle coordinate e sulla posizione dell'mc "box" riuscirai a posizionare tutto come vuoi...Il problema resterà però per le miniature come limiti superiore e inferiore, perché il codice attuale le fa partire dalla parte superiore e le fa uscire dalla parte inferiore, o meglio, agiscono così perché non c'è uno script che le limita...devi creare una variabile per _root["mc"+(i+1)]._y = dimImm*i; in modo da dargli un inizio e una fine... Purtroppo se non sei un po' infarinato di actionscript non è facile...lo capisco!! Ma io non ho davvero il tempo di provare lo script!! Ad ogni modo devi dare al tuo filmato dimensioni fisse, altrimenti, passando varibili tipo Stage.width, rischi che la gallery si posizioni in un punto anziché in un altro a seconda della risoluzione del monitor in cui verrà visualizzata! :(