salve a tutti
vorrei incorporare un campo di testo in una galleria di immagini su base xml:
premesso che non sono una cima di actionscrit
potrebbe qualcuno aiutarmi a correggere questo script (di effetto semplice ma bello) ma che prevede solo immagini ? (mi piacerebbe che sull'on release della foto grande _vedi: clip.onRelease_si collegasse una didascalia...)
codice:myXML = new XML(); myXML.ignoreWhite = true; myXML.onLoad = function() { maxFoto = this.childNodes[0].childNodes.length; crea(); }; // numero di immagini sull'asse _x var row:Number = 3; // posizione _x della prima immagine var xpos:Number = 10; // distanza tra le immagini sull'asse _x var xdis:Number = 45; // posizione _y della prima immagine var ypos:Number = 10; // distanza tra le immagini sull'asse _y var ydis:Number = 45; // non importa... :) var j:Number = 0; // posizione _x dell'immagine ingrandita, rispetto al movieclip sfondo var clipLeft:Number = sfondo._x+5; // posizione _y dell'immagine ingrandita, rispetto al movieclip sfondo var clipTop:Number = sfondo._y+5; // largezza dell'immagine ingrandita var wid:Number = sfondo._width-10; // altezza dell'immagine ingrandita var hei:Number = sfondo._height-10; // ridimensionamento dell'immagine piccola (vedi xscale/yscale nella function carica) var alt:Number = 35; var lar:Number = 35; // scale dell'immagine var scale:Number = 10; // fine variabili da modificare function crea() { for (i=1; i<=maxFoto; i++) { j++; this.attachMovie("myClip", "clip"+j, j); var clip:MovieClip = this["clip"+j]; clip._x = xdis*i+(xpos-xdis); clip._y = ypos; clip._alpha = 50; foto = myXML.childNodes[0].childNodes[j-1].attributes.nome; clip.loader.carica(foto); clip.onRollOver = fadeIn; clip.onRollOut = fadeOut; clip.onRelease = function() { this.swapDepths(1000); // ingrandisce l'immagine this.mov(clipLeft, clipTop, wid, hei, 4); // rimpicciolisce l'immagine _global.big.mov(_global.thisLeft, _global.thisTop, lar, alt, 4); _global.thisLeft = this._x; _global.thisTop = this._y; }; if (i == row) { ypos += ydis; i = 0; maxFoto -= row; } } } MovieClip.prototype.carica = function(pic) { this._xscale = 0; this._parent.blank.loadMovie(pic); this.onEnterFrame = function() { var tot = this._parent.blank.getBytesTotal(); tot>0 ? carica=true : carica=false; if (carica) { var loa = this._parent.blank.getBytesLoaded(); per = Math.round((loa/tot)*100); this._xscale = per; if (per>=100) { this._parent.blank._xscale = this._parent.blank._yscale=scale; this._xscale = 0; delete this.onEnterFrame; } } }; }; MovieClip.prototype.fadeIn = function() { this.onEnterFrame = function() { this._alpha>=100 ? (this._alpha=100, delete this.onEnterFrame) : this._alpha += 4; }; }; MovieClip.prototype.fadeOut = function() { this.onEnterFrame = function() { this._alpha<50 ? (this._alpha=50, delete this.onEnterFrame) : this._alpha -= 2; }; }; MovieClip.prototype.mov = function(x, y, w, h, div) { // disabilito il bottone per evitare il rollOver/out durante lo spostamento this.enabled = false; this.onEnterFrame = function() { this._x += (x-this._x)/div; this._y += (y-this._y)/div; this._width += (w-this._width)/div; this._height += (h-this._height)/div; if ((Math.abs(x-this._x)<1) && (Math.abs(y-this._y)<1) && (Math.abs(w-this._width)<1) && (Math.abs(h-this._height)<1)) { _global.big.fadeOut(); _global.big.enabled = true; _global.big = this; delete this.onEnterFrame; } }; }; myXML.load("pola.xml");
spero di essere stato chiaro...grazie

Rispondi quotando